2012-01-11 4 views
6

내 문제에 대한 쉬운 해결책이 있어야한다고 생각하기 때문에 필자는 필사적이지만 아무런 소용이 없습니다.역할 구성원이없는 인증 된 사용자를위한 web.xml의 보안 제약

Glassfish 3.1.1에서 사용자 지정 영역을 사용하고 있습니다. 이 사용자 지정 영역 (AppservPasswordLoginModuleInterface 구현)은 HTTPS 요청에서 보안 토큰을 가져와 보안 토큰의 유효성을 검사 한 다음 사용자를 Glassfish로 반환합니다.

보안 토큰에 그룹이 없습니다. 즉, public String [] getGroupsList() 또는 custom 영역이 보안 토큰에 역할이 없으므로 빈 목록을 반환한다는 것을 의미합니다.

그렇다면 유효성이 검사 된 사용자 만 로그인 할 수있는 보안상의 제약이 있습니다. 내가 어떤 그룹이 없기 때문에

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>mywebapp</web-resource-name> 
    <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
    <role-name>Users</role-name> 
    </auth-constraint> 
</security-constraint> 

하지만,이 역할에 대한 그룹을 매핑 할 수 없습니다, 따라서 나는 역할 정식-제약 조건을 사용할 수 없습니다 : 내가 web.xml 파일에 다음과 같은 제약 조건을 사용할 수 있다는 것을 알고 -이름.

web.xml에는 인증 된 사용자 만 허용되며, 어떤 역할인지는 무시하고 어떤 역할에 있는지 전혀 무시하는 방식이 정의되어 있습니다. LDAP 사용자가 보안에 매핑되는 방법 LDAP 스키마와 방법의 범위가 우리의 아웃 토큰 때문에,

  • 내가 역할을 포함하는 기본 LDAP을 변경할 수 없습니다 :

    내가 구현할 수있는 솔루션의 몇 가지가 있습니다 .

  • 현재 사용자 지정 영역 처리기를 사용해야하는데 기본 그룹을 반환하는 내 자신의 고유 한 영역 처리기로 바꿀 수는 없습니다. 나는 이것을 한 번 시도했지만 효과가있었습니다. 그러나 커스텀 영역은 일반적인 것이어야하기 때문에 기존의 커스텀 영역을 내 자신만으로 대체 할 수는 없습니다.

하지만 사실 저는 web.xml에 다음과 같은 방법이 있어야한다고 생각합니다. 모든 그룹과 역할을 무시하고 인증 된 사용자를 원하십니까?

도움을 주시면 감사하겠습니다.

답변

15

꽤 오래된, 그러나 대답을 찾고있는 사람들을 위해, 당신은 * 역할 이름을 사용할 수 있습니다

<auth-constraint> 
    <role-name>*</role-name> 
</auth-constraint> 

This guy

그것을 해결하기 위해 관리.

+0

Weblogic 10.3.4에서 작동하지 않습니다. –

+0

WF10.1.0에서 작동합니다. *을 설정하는 것을 잊지 마십시오. 그렇지 않으면 *가 에만있는 경우 작동하지 않습니다. –