2015-02-04 2 views
2

우리는 응용 프로그램에서 PrincipalAware 인터페이스를 사용하여 사용자 관련 항목을 얻습니다. Struts 2에서 PrincipalAware를 사용하는 이유

내가 가난한 결과와 함께 그것에 대해 정보를 얻기 위해 인터넷에 검색이 내가 구글에있어 무엇 : 교장 정보에 대한 액세스를 원하는

공용 인터페이스의 PrincipalAware

작업 HttpServletRequest 객체로부터이 인터페이스를 구현해야한다.

이 인터페이스는 작업이 서블릿 환경에서 사용되는 경우에만 관련이 있습니다. 이 인터페이스를 사용하면 서블릿 환경에 묶이지 않게됩니다.

제발, 이해 좀 도와주세요.

+0

당신은 이해할 수없는 부분이 있습니까? –

+0

어디서 왜 사용하는지. –

+2

Q : 어디서? A : 행동. Q : 왜? A : 교장 정보를 얻으려면. –

답변

2

PrincipalAware 인터페이스를 사용하면 Struts가 PrincipalProxy 오브젝트를 조치 인스턴스에 삽입 할 수 있습니다. 이 프록시를 사용하여 서블릿 보안 메커니즘에 액세스 할 수 있습니다. 당신이에 따라 일부 작업의 실행을 제한하려는 경우 지금이

public class MyAction extends ActionSupport implements PrincipalAware { 

    protected PrincipalProxy principal; 

    public void setPrincipalProxy(PrincipalProxy principalProxy) { 
    this.principal = principalProxy; 
    } 

    public PrincipalProxy getPrincipal() { 
    return principal; 
    } 
} 

처럼, 당신은, 액션 메소드 또는 뷰 레이어에

<s:if test="principal.isUserInRole('role1')"> 

참고 PrincipalProxy을 사용할 수 있습니다 역할을한다면, roles 인터셉터를 사용할 수 있습니다.

+0

좋은 설명 주셔서 감사합니다. –

+0

이 대답을 이해하는 데 도움이되는 경우 허용 된 해결책으로 표시하십시오. –

관련 문제