sso cas+security客户端配置

web.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <display-name>sample</display-name>
    <distributable/>
    <context-param>
        <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
        <param-value>ApplicationResources</param-value>
    </context-param>
    <context-param>
        <param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
        <param-value>en</param-value>
    </context-param>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
        classpath:/applicationContext-resources.xml
            ,classpath:/applicationContext-dao.xml
            ,classpath:/applicationContext-quartz.xml
            ,classpath:/applicationContext-service.xml
            ,classpath:/applicationContext.xml
        ,classpath*:applicationContext*.xml
            ,/WEB-INF/security.xml
        </param-value>
    </context-param>

    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>localeFilter</filter-name>
        <filter-class>com.ways.framework.filter.LocaleFilter</filter-class>
    </filter>
     <filter>
        <filter-name>rewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
        <init-param>
            <param-name>logLevel</param-name>
            <param-value>commons</param-value>
        </init-param>
        <init-param>
            <param-name>confReloadCheckInterval</param-name>
            <param-value>-1</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>securityFilter</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <init-param>
            <param-name>targetBeanName</param-name>
            <param-value>springSecurityFilterChain</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>sitemesh</filter-name>
        <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
    </filter>


    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>localeFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>rewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>securityFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>


    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
    <listener> 
 <listener-class>com.ways.framework.listener.InitListener</listener-class> 
</listener> 
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <init-param>    
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:/dispatcher-servlet.xml</param-value>    
   </init-param>     
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/app/*</url-pattern>
    </servlet-mapping>


    <welcome-file-list>
        <welcome-file>/index.jsp</welcome-file>
    </welcome-file-list>


    <error-page>
        <error-code>500</error-code>
        <location>/error.jsp</location>
    </error-page>
    <error-page>
        <error-code>400</error-code>
        <location>/index.jsp</location>
    </error-page>
    <error-page>
        <error-code>403</error-code>
        <location>/403.jsp</location>
    </error-page>
    <error-page>
        <error-code>404</error-code>
        <location>/404.jsp</location>
    </error-page>
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <trim-directive-whitespaces>true</trim-directive-whitespaces>
        </jsp-property-group>
    </jsp-config>
    <session-config>
        <session-timeout>120</session-timeout>
        <cookie-config>
            <http-only>true</http-only>
        </cookie-config>
        <tracking-mode>COOKIE</tracking-mode>
    </session-config>

</web-app>



security.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:beans="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p"
             xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
              http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
    <!-- 以下不需修改 -->
  <http pattern="/themes/**"  security="none"/>
  <http pattern="/include/**"  security="none"/>
  <http pattern="/modules/**"  security="none"/>
        
<!--  需修改——开始 -->
    <http auto-config="true"  entry-point-ref="casAuthenticationEntryPoint"  access-decision-manager-ref="customAccessDecisionManager"  > 
        <logout logout-success-url="http://192.168.2.48:8180/logout?service=http://192.168.2.82/dlrs" /> <!-- 修改地方 -->
        <custom-filter ref="casAuthenticationFilter"   position="CAS_FILTER"/>
        <custom-filter ref="loginProcessingFilter" position="LAST"/>
    </http>
    
    <beans:bean id="ticketValidator" class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">
<beans:constructor-arg index="0" value="http://192.168.2.48:8180" /> <!-- 修改地方 -->
</beans:bean>

<beans:bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties">
<beans:property name="service" value="http://192.168.2.82/dlrs/j_spring_cas_security_check"></beans:property>  <!-- 修改地方 -->
<beans:property name="sendRenew" value="false"></beans:property>
</beans:bean> 

<beans:bean id="casAuthenticationEntryPoint" class="org.springframework.security.cas.web.CasAuthenticationEntryPoint">
<beans:property name="loginUrl" value="http://192.168.2.48:8180/login"></beans:property> <!-- 修改地方 -->
<beans:property name="serviceProperties" ref="serviceProperties"></beans:property>
</beans:bean>


<!--  需修改——结束 -->



<!-- 以下不需修改 -->
<beans:bean id="casAuthenticationFilter"  class="org.springframework.security.cas.web.CasAuthenticationFilter">
<beans:property name="authenticationManager"  ref="authenticationManager"></beans:property>
</beans:bean>

<beans:bean id="loginProcessingFilter"  class="com.ways.auth.filter.LoginProcessingFilter" >
</beans:bean>

<authentication-manager  alias="authenticationManager">
<authentication-provider ref="casAuthenticationProvider"></authentication-provider>
</authentication-manager>

<beans:bean id="casAuthenticationProvider" class="org.springframework.security.cas.authentication.CasAuthenticationProvider">
<beans:property name="authenticationUserDetailsService" ref="authenticationUserDetailsService"/>
<beans:property name="serviceProperties" ref="serviceProperties"></beans:property>
<beans:property name="ticketValidator" ref="ticketValidator" />               
<beans:property name="key" value="cas"></beans:property>
</beans:bean>



<!-- authorities对应 CAS server的 登录属性, 在此设置到spirng security中,用于spring security的验证 -->
<beans:bean id="authenticationUserDetailsService" class="org.springframework.security.cas.userdetails.GrantedAuthorityFromAssertionAttributesUserDetailsService">
<beans:constructor-arg>
<beans:array>
<beans:value>authorities</beans:value>
</beans:array>
</beans:constructor-arg>
</beans:bean>


<!-- 访问决策器,决定某个用户具有的角色,是否有足够的权限去访问某个资源。-->
<beans:bean id="customAccessDecisionManager" class="com.ways.sso.utils.CustomAccessDecisionManager"></beans:bean>   
<!-- add by fzt cas 集成——结束 -->

<beans:bean id="saltSource" class="org.springframework.security.authentication.dao.ReflectionSaltSource"  p:userPropertyToUse="username"/>

</beans:beans>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值