2010-08-16 2 views
1

나는 CAS가있는 Spring Security 3.0.3을 가지고있다. 내 conf의 일부는 다음과 같습니다.spring cas 로그인 링크 생성 방법

<security:http entry-point-ref="casAuthenticationEntryPoint" auto-config="true" > 
    <security:intercept-url pattern="/*/secure/**" access="ROLE_USER" /> 
    <security:custom-filter position="CAS_FILTER" ref="casAuthenticationFilter" /> 
    <security:anonymous enabled="false"/> 
    <security:logout invalidate-session="true" logout-url="/logout" logout-success-url="/web/auth?logout" /> 
</security:http> 

<bean id="casAuthenticationEntryPoint" class="org.springframework.security.cas.web.CasAuthenticationEntryPoint"> 
    <property name="loginUrl" value="${cas.app.url}/login"></property> 
    <property name="serviceProperties" ref="serviceProperties"></property> 
</bean> 

<bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties"> 
    <property name="service" value="${application.stack.hostname}/ctx/j_spring_cas_security_check" /> 
    <property name="sendRenew" value="false" /> 
</bean> 

보안 콘텐츠에 액세스하면 CAS 로그인으로 리디렉션됩니다. 인증 후에는 액세스를 시도한 보안 URL로 다시 리디렉션됩니다.

모든 페이지에서 동일한 작업을 수행하는 "로그인"링크를 추가해야합니다. 이 링크는 어디에 연결해야합니까? 나는 $ {cas.app.url}/login? service = $ {application.stack.hostname}/ctx/j_spring_cas_security_check를 시도했으나 작동하지 않는 것 같습니다. 모든 속성이 적절한 전체 호스트 이름 :로 대체됩니다 물론

답변

0

내가 방금 지적 할 수 있어야한다 당신이 찾고있는 것을 이해한다면 그것은 패턴 <security:intercept-url pattern="/*/secure/**" access="ROLE_USER" />

0

일치하는 모든 URL을 가리킬 수 있습니다 $ {cas.app.url}/login으로 이동하십시오. 서비스 매개 변수를 그대로 둡니다. 그러면 cas 서버의 로그인 페이지로 이동하여 모든 보안 서비스에 대한 인증을 받게됩니다.