통합하려고하는 두 개의 시스템이 있습니다. 하나는 원시 서블릿을 기반으로 작성되었으며, 새로운 서블릿은 IceFaces로 JSF로 빌드됩니다. 나는 시스템 간 로그인을 용이하게하려고 노력하고있다. 새로운 사이트에 적절한 정보를 POST하고 기록하는 구형 시스템에 버튼이 있습니다.얼굴 컨텍스트를 수동으로 생성하기
글쎄, 이상적으로는 새로운 사이트에서이를 용이하게하기 위해 기존 서블릿을 사용하고 싶습니다. 새 사이트의 서블릿으로 이동하여 필요한 작업을 수행하고 대시 보드로 전달하십시오.
우리의 보안은 관리 빈을 통해 처리됩니다. 그러나 서블릿에 도착할 때에는 얼굴 컨텍스트가 없습니다. 그럼, 어떻게 새 faces 컨텍스트를 만들까요?
필자는 항상 나를 위해 FacesContext를 생성 할 더미 .iface 페이지에 링크 할 수있는 백업 계획을 가지고 있으며 인스턴스화되어 메인 페이지로 넘어갈 때 물건을 처리 할 백킹 빈을 만듭니다. . 그러나 이것은 해킹과 매우 흡사합니다.
도움이 될 것입니다.
편집 : 백업 방식으로 진행했습니다. ...
<f:view>
<ice:outputText value="#{EntryPoint}"/>
</f:view
백킹 빈은 그렇게처럼 보이는이 여전히 해킹 같은 느낌
public EntryPoint() {
try {
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
String loginID = request.getParameter("loginID");
//Do some code to load the user/permissions
response.sendRedirect(
//The appropriate page
);
} catch (IOException ex) {
logger.error(null, ex);
} catch (SQLException ex) {
logger.error(null, ex);
}
}
을,하지만 난 주위하는 방법을 잘 모르겠어요 : 기본적으로, 그래서 같은 페이지에 POST 이. 이상적으로는 서블릿에 POST하고 loginID를 얻은 다음 사용자를 빌드하고 직접 관리 Bean에 저장합니다. 그러나 FacesContext는 그 시점에 존재하지 않습니다.
다른 아이디어?
두 번째는 내가 찾고 있던 대답이고 첫 번째 계획은 계획을 세우는 것이 었습니다. 기존 Servlet 사이트 (자체 webapp 및 WAR 파일)가 POST 및 자격 증명을 사용하여 사용자를 새 webapp로 리디렉션한다는 아이디어가있었습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? – Drew