2013-07-18 2 views
0

로그인 웹 플로우를 사용하는 CAS 3.4.9가 있습니다.
특정 작업 /보기에서 로그인 웹 플로를 직접 호출해야합니다.
어떻게 할 수 있습니까?CAS 로그인 웹 플로에 대한 호출

(보안상의 이유로) 가능하지 않은 경우 CAS에서 다른 웹 플로우를 사용하는 다른 "서비스"를 어떻게 가질 수 있습니까?
그리고이 방법으로 내가 호출해야하는 링크는 무엇입니까?
감사합니다.

답변

0

두 가지 옵션이 있습니다. 예를 들어 generateServiceTicket과 같이 호출하려는 클래스를 확장하거나 새 클래스를 만들고 CAS 로그인 웹 플로우에 클래스를 삽입합니다.

사용자가 지난 365 일 동안 정책을 수락했는지 확인하기 위해 CAS 로그인 웹 플로에 트랩을 삽입했습니다.

보통 warn 결정 상태에서는 리디렉션 동작 상태를 반환하지만 사용자를 트래핑하여 정책을 확인합니다.

<decision-state id="warn"> 
      <if test="flowScope.warnCookieValue" then="showWarningView" else="checkPolicy" /> 
    </decision-state> 

는 그 다음 내 checkPolicy 상태로 전환

<action-state id="checkPolicy"> 
     <evaluate expression="checkPolicyAction"/> 
      <transition on="success" to="redirect"/> 
      <transition on="error" to="viewLoginForm"/> 
      <transition on="redirectPolicy" to="redirectPolicy"/> 
      <transition on="gateway" to="redirectPolicy"/> 
    </action-state> 

표현 checkPolicyActiondoExecute 방법을 실행하고 webflow 다양한 상태로 다시 반환하는 자바 클래스에 CAS-servlet.xml 파일에 정의되어 있습니다 이전 XML에서 보았 듯이. 끝내기 위해 redirectPolicy은 사용자를 새로운 서비스로 리디렉션합니다. 그러면 새 서비스가 정책을 수락 할 것이며 사용자는 의도 한대로 계속할 수 있습니다.

https://github.com/Unicon/cas-password-manager - 회사에서 CAS의 로그인 웹 플로우를 확장하여 비밀번호 업데이트를 위해 트랩합니다. 이것이 내가 사용자를 함정에 빠뜨리는 방법에 대한 대부분의 아이디어를 얻은 곳입니다. 또한 CAS 사용자 설명서 https://wiki.jasig.org/display/CASUM/은 훌륭한 리소스입니다.