2011-07-26 2 views
1

내 Struts 응용 프로그램에서 일부 사용자가 자신의 역할에 따라 선택적으로 일부 작업에 액세스 할 때 정적 페이지로 리디렉션하고 싶습니다.로그인 한 사용자에 대한 작업 하위 집합에 대한 액세스를 선택적으로 거부합니다.

본격적인 권한 부여 솔루션을 찾고 있지 않지만 내 문제는 매우 비슷합니다.

struts-config.xml에 액션에 플래그 또는 기타 세부 정보를 넣을 수있는 방법이 있습니다.이 코드는 java 코드에서 사용할 수 있으며, 액세스가 선택적으로 액세스를 거부하려는 범주에 속하는지 식별하는 데 사용할 수 있습니까?

참고 : 직접 액션에 대한 org.apache.struts.action.Action을 확장하지 않습니다. 대신 org.apache.struts.action.Action을 확장하는 추상 클래스를 정의하고 나머지는이 추상 클래스를 확장합니다. 따라서 여기서 유효성 검사를 수행 할 수 있습니다. 여기서 mappings.getPath()를 사용하여 작업 유형을 식별 할 수 있습니다. 하지만 액세스를 선택적으로 거부하려는 경로 목록을 하드 코딩하지 말고 대신 struts-config.xml에서이 경로를 구성 할 수 있는지 기대하고 있습니다.

답변

2

struts-config.xml 파일에 using the roles attribute on the <action> configuration으로 구성 할 수 있습니다. 특정 작업에 액세스하기 위해 사용자가 가져야하는 역할을 지정할 수 있습니다.

이렇게하면 mappings.getPath()에서 테스트하는 것을 피할 수 있습니다 (이는 내가보기에 못생긴 해결책입니다).

일단 역할이 구성된 후에는 사용자가 원하는 방식으로 process those roles의 사용자 지정 요청 프로세서를 만들 수 있습니다.

웹에서 Struts의 보안 역할에 대한 자세한 정보는 here is a basic example to get you started을 참조하십시오.

+0

감사합니다. 이것은 많은 도움이되었습니다. 역할 속성 (RBAC에 사용할 계획)을 사용하는 대신 struts-config.xml에서 매개 변수 특성을 사용하고 여기서 마커 매개 변수를 추가합니다. 이 매개 변수는 실제 작업이 호출되기 전에 일부 입력을 알리고 일반적인 유효성 검사를 수행하는 내 AbstracAction에서 사용됩니다. –

관련 문제