성공적인 인증에 따라 사용자가 프로필을 완료해야합니다
-
18-09-2019 - |
문제
WebSphere Portal 6.1 용 독립형 사용자 정의 레지스트리, 사용자 정의 로그인 포틀릿 및 사용자 정의 프로필 포틀릿을 개발하고 있습니다. 일부 기존 사용자는 프로필에서 하나 이상의 필요한 필드를 완료하지 않았습니다.
다음 에이 사용자가 성공적으로 로그인하면 포털을 사용자 정의 프로필 포틀릿으로 리디렉션하도록하려면 어떻게해야합니까? ~ 전에 사이트의 나머지 부분에 액세스 할 수 있습니까?
해결책
WebSphere Portal 6.1에는 필터 체인을 통해 인증 요청을 보내기위한 API가 제공됩니다. Developer Works에서 API를 설명하는 기사를 찾았습니다 ( 'WebSphere Portal의 새로운 보안 API').
특히, com.ibm.portal.auth.auth.explicitloginFilter 인터페이스를 사용하면 인증 시퀀스 중에 연결하고 사용자의 자격 증명이 검증 된 후 시스템이 리디렉션되는 곳에서 동적으로 변경할 수 있습니다. 다음은 스터브 된 예입니다.
public class CustomLoginFilter implements ExplicitLoginFilter {
public void login(HttpServletRequest req, HttpServletResponse resp,
String userId, char[] password,
FilterChainContext portalLoginContext, Subject subject,
String realm, ExplicitLoginFilterChain chain)
throws LoginException, WSSecurityException,
com.ibm.portal.auth.exceptions.LoginException {
//Validate the user's credentials.
chain.login(req, resp, userId, password, portalLoginContext, subject, realm);
//Redirect to profile portlet if required profile fields are incomplete.
if(incompleteProfile(userId)) {
portalLoginContext.setRedirectURL(getURLForProfilePortlet());
}
}
//Other methods...
}
ExplictLoginFilter 및 그 종속성은 다음 JAR 파일에 있으며 코드를 컴파일 할 때 클래스 경로에 추가해야합니다.
웹에서 시작하여 포털 루트 디렉토리 ...
/base/wp.auth.base/shared/app/wp.auth.base.jar
/base/wp.base/shared/app/wp.base.jar
제휴하지 않습니다 StackOverflow