springsecuity和cas实现单点登录----springsecuity具体配置


    @Bean
    ServiceProperties serviceProperties() {
        ServiceProperties serviceProperties = new ServiceProperties();
        serviceProperties.setService(casClientProperties.getLogin());
        return serviceProperties;
    }

    @Bean
    @Primary
    AuthenticationEntryPoint authenticationEntryPoint() {
        CasAuthenticationEntryPoint entryPoint = new CasAuthenticationEntryPoint();
        entryPoint.setLoginUrl(casServerProperties.getLogin());
        entryPoint.setServiceProperties(serviceProperties());
        return entryPoint;
    }

    @Bean
    TicketValidator ticketValidator() {
        return new Cas20ProxyTicketValidator(casServerProperties.getPrefix());
    }

    @Bean
    CasAuthenticationProvider casAuthenticationProvider() {
        CasAuthenticationProvider provider = new CasAuthenticationProvider();
        provider.setServiceProperties(serviceProperties());
        provider.setTicketValidator(ticketValidator());
        provider.setUserDetailsService(userDetailService);
        provider.setKey("javaboy");
        return provider;
    }

    @Bean
    CasAuthenticationFilter casAuthenticationFilter(AuthenticationProvider authenticationProvider) {
        CasAuthenticationFilter filter = new CasAuthenticationFilter();
        filter.setServiceProperties(serviceProperties());
        filter.setAuthenticationManager(new ProviderManager(authenticationProvider));
        return filter;
    }

    @Bean
    SingleSignOutFilter singleSignOutFilter() {
        SingleSignOutFilter sign = new SingleSignOutFilter();
        sign.setIgnoreInitConfiguration(true);
        return sign;
    }


    @Bean
    LogoutFilter logoutFilter() {
        LogoutFilter filter = new LogoutFilter(casServerProperties.getLogout(), new SecurityContextLogoutHandler());
        filter.setFilterProcessesUrl(casClientProperties.getLogoutRelative());
        return filter;
    }

第一个函数:serviceProperties是用来设置从cas server重定向到cas client使用的,casClientProperties.getLogin()代表的是需要重定向到cas server的访问地址。

第二个函数:authenticationEntryPoint用来设置访问cas server登录地址,以及cas client重定向地址,其中setLoginUrl(casServerProperties.getLogin())用来访问cas server登录界面,setServiceProperties(serviceProperties())用来重定向到cas client

第三个函数:ticketValidator()是用来检测票据(ST),用来判断ST是否有效。

第四个函数:casAuthenticationProvider()表示为需要用到springsecuity特有的loadUserDetail,需要用到用户数据库,用户信息并不可以写死的。

第五个函数:casAuthenticationFilter(AuthenticationProvider authenticationProvider) 表示为首先登录好cas server设定的登录界面,然后会重定向到cas client,并且用上第四个函数,进行读取用户信息。

第六个函数:singleSignOutFilter()表示为:cas client向cas server发送注销信息,如果cas server收到cas client发送信息的话,那么就会自动发送到所有cas client,同时把服务器里存下的TGT信息给删除掉,这样收到cas client发送的TGC后,就搜索不到服务端的TGT了,表明做到单点登出的效果。

第七个函数:logoutFilter()表示为cas server向cas client发送的注销请求。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值