标签: spring-security-cas

如何使用Java配置配置Spring Security CAS支持?

我正在尝试使用Spring Security为我的Web应用程序设置CAS身份验证.我已经按照文档编写并设法将XML配置示例转换为Java配置.但是,我不确定我是否正确地做了所有事情并且考虑到安全性的敏感性,我希望有人确认没有错误.

例如,我如何确定不再有默认配置(例如URL上的自由权限,不同的身份验证管理器和/或提供程序等等)?

我检索当前AuthenticationManager的方式是否正确?

像我做的那样正确配置EntryPoint吗?

我发现理解如何使用WebSecurityConfigurerAdapter相当混乱......

这是我的@Cofiguration类:

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Bean(name="authenticationManager")
    @Override
    public AuthenticationManager authenticationManagerBean() throws Exception {
        // TODO Auto-generated method stub
        return super.authenticationManagerBean();
    }

    @Bean
    public ServiceProperties serviceProperties() {
        final ServiceProperties serviceProperties = new ServiceProperties();
        serviceProperties.setService("http://localhost:8088/webapp/login/cas");
        return serviceProperties;

    }

    @Bean
    public AuthenticationUserDetailsService<CasAssertionAuthenticationToken> authenticationUserDetailsService() {
        return new MyCasAssertionUserDetailsService();
    }

    @Autowired
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        super.configure(auth);
        final CasAuthenticationProvider casAuthenticationProvider = new CasAuthenticationProvider();
        casAuthenticationProvider.setServiceProperties(serviceProperties());
        casAuthenticationProvider.setAuthenticationUserDetailsService(authenticationUserDetailsService());
        casAuthenticationProvider.setTicketValidator(new Cas20ProxyTicketValidator("https://my.cas.server.com/cas"));
        casAuthenticationProvider.setKey("MY-KEY");
        auth.authenticationProvider(casAuthenticationProvider);


    }

    @Bean
    public CasAuthenticationEntryPoint casEntryPoint() …
Run Code Online (Sandbox Code Playgroud)

java spring-security spring-security-cas

6
推荐指数
0
解决办法
1900
查看次数

Spring 4.2的原生全局CORS支持不适用于CAS filterProcessesUrl

我试图在升级到spring-boot 1.3之后切换到spring 4.2的本机Global CORS支持,但它似乎不适用于CAS过滤器进程url(/ login/cas).

最初,我使用spring-boot 1.2.7和spring 4.2以及spring-security 4.0.2,并使用自制的基于过滤器的cors支持.我自己的休息服务或CAS ST验证URL运行良好.在我升级到spring-boot 1.3后,即将推出spring-spring-security版本.它停止了工作.经过一些挖掘,通过AddFilterBefore修复此问题.所以基于过滤的CORS似乎也适用于spring-boot 1.3.0 + spring-security-cas.

但是,我想使用本机Global CORS,但似乎无法识别CAS ST验证URL(/ login/cas),但其他端点也可以.

请帮忙.

设置非常简单.

@Configuration
public class CorsConfiguration {
    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {

                registry.addMapping("/**");
            }
        };
    }
}   
Run Code Online (Sandbox Code Playgroud)

以下是一些交通:

    Request URL:http://localhost:9000/login/cas?ticket=ST-1357-15aQrv93jGEUsQpQRF1P-cas01.example.org
    Request Method:GET
    Status Code:302 Found

    Cache-Control:no-cache, no-store, max-age=0, must-revalidate
    Content-Length:0
    Date:Thu, 19 Nov 2015 09:19:31 GMT
    Expires:0
    Location:http://localhost:9000/
    Pragma:no-cache
    Server:Apache-Coyote/1.1
    X-Content-Type-Options:nosniff
    X-Frame-Options:DENY
    X-XSS-Protection:1; mode=block
Run Code Online (Sandbox Code Playgroud)

以下是控制台错误:

XMLHttpRequest cannot load …
Run Code Online (Sandbox Code Playgroud)

spring spring-security cors spring-boot spring-security-cas

3
推荐指数
1
解决办法
2330
查看次数

定制Spring CAS j_spring_cas_security_check URL

我正在使用CAS 3.5.2和Spring CAS扩展。我正在尝试将j_spring_cas_security_checkURL(以及类似的注销帐户)更改为security_check。我在Spring文档中读到

Back in the service web application, the CasAuthenticationFilter is always listening for
requests to /j_spring_cas_security_check (this is configurable, but we'll use the defaults   
in this introduction).
Run Code Online (Sandbox Code Playgroud)

我以为这只是一个伪URL,可以通过在Spring Security配置中将其设置为bean service属性的值来更改org.springframework.security.cas.ServiceProperties,但是更改后,我的CAS SSO开始崩溃。我没有在客户端或服务器端看到任何异常。

更改此默认路径时,我是否缺少任何明显的步骤?

cas spring-security spring-security-cas

0
推荐指数
1
解决办法
4812
查看次数