Wicket의 웹 페이지를 암호로 보호하여 사용자가 로그인 한 경우에만 액세스 할 수 있도록하십시오.Wicket을 사용하여 페이지를 어떻게 암호로 보호합니까?
나는 로그인 페이지를 보여줄 페이지를 원한다. 사용자가 접근하려고했던 페이지.
개찰은 어떻게 이루어 집니까? 이미 로그인 페이지를 만들고 세션 클래스를 확장했습니다.
Wicket의 웹 페이지를 암호로 보호하여 사용자가 로그인 한 경우에만 액세스 할 수 있도록하십시오.Wicket을 사용하여 페이지를 어떻게 암호로 보호합니까?
나는 로그인 페이지를 보여줄 페이지를 원한다. 사용자가 접근하려고했던 페이지.
개찰은 어떻게 이루어 집니까? 이미 로그인 페이지를 만들고 세션 클래스를 확장했습니다.
프레임 워크 제공 방법은 애플리케이션 init()
방법에 추가하여, 예를 들어, 애플리케이션,위한 IAuthorizationStrategy 인스턴스를 제공하는 것이다 :
init() {
...
getSecuritySettings().setAuthorizationStrategy(...)
}
삼 인증 기능의 동작 예를 개찰 재료 here에 인을하는 합리적으로 복잡한 것들을 보여줍니다. 아주 간단한 경우에는 SimplePageAuthorizationStrategy을보십시오. 아주 기본적인 수준에서,이 때문에 (링크 된 자바 독에서 촬영)처럼 사용할 수 있습니다 : 응답
SimplePageAuthorizationStrategy authorizationStrategy = new SimplePageAuthorizationStrategy(
MySecureWebPage.class, MySignInPage.class)
{
protected boolean isAuthorized()
{
// Authorize access based on user authentication in the session
return (((MySession)Session.get()).isSignedIn());
}
};
getSecuritySettings().setAuthorizationStrategy(authorizationStrategy);
편집
를 언급 그냥 있다면 내가 앞으로 가장 좋은 방법을 생각한다 그 클래스 자체보다는 SimplePageAuthorizationStrategy
과 같은 것을 사용할 것입니다. 어떤 경우,
IAuthorizationStrategy authorizationStrategy = new AbstractPageAuthorizationStrategy()
{
protected boolean isPageAuthorized(java.lang.Class<Page.class> pageClass)
{
if (pageClass.getAnnotation(Protected.class) != null) {
return (((MySession)Session.get()).isSignedIn());
} else {
return true;
}
}
};
이 그럼 당신은 (링크는 소스 코드입니다) SimplePageAuthorizationStrategy에서 이루어집니다 무엇에 IUnauthorizedComponentInstantiationListener 비슷한을 등록해야합니다 것 : 나는 사용자 정의 주석 주석되는 페이지를 캡처하기 위해이 같은 짓을 예 :
new IUnauthorizedComponentInstantiationListener()
{
public void onUnauthorizedInstantiation(final Component component)
{
if (component instanceof Page)
{
throw new RestartResponseAtInterceptPageException(MySignInPage.class);
}
else
{
throw new UnauthorizedInstantiationException(component.getClass());
}
}
});
어떻게 두 페이지 이상으로 SimplePageAuthorizationStrategy를 사용하나요? 첫 번째 매개 변수로 내 웹 페이지의 기본 클래스를 사용하지 않는 것이 좋습니다. – Kane