微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何允许基于url /用户名的JDBC Spring Security或SAML SSO身份验证

如何解决如何允许基于url /用户名的JDBC Spring Security或SAML SSO身份验证

我有一个现有的Grails 2.5.6应用程序,该应用程序使用Spring Security并允许通过数据库进行标准登录。我添加了Spring Security SAML SSO,并且能够通过IDP连接并登录和注销。 如何允许用户选择他们想要使用的身份验证类型?我可以映射两个URL,一个通过数据库映射到身份验证,另一个通过SAML映射吗?我尝试输入https:// localhost:8443 / login / auth和https:// localhost:8443 / saml / SSO,但是两个URL都重定向到IDP登录页面。我进行了一些调试,看起来像SAMLEntryPoint.doFilter(...)调用begin(...)调用了initializeSSO(...),后者向IDP发出了身份验证请求。我猜因为过滤器链的顺序,SAMLEntryPoint过滤器首先执行?有没有一种方法可以根据请求URL更改流,还是需要实现其中一个过滤器(SAMLEntryPoint?)的子类来更改身份验证流?

 0 = {SecurityRequestHolderFilter@15982} 
 1 = {SecurityContextPersistenceFilter@15981} 
 2 = {SAMLEntryPoint@15980} 
 3 = {MetadatadisplayFilter@15979} 
 4 = {SAMLProcessingFilter@15977} 
 5 = {SAMLlogoutFilter@18043} 
 6 = {SAMLlogoutProcessingFilter@18187} 
 7 = {MutablelogoutFilter@18188} 
 8 = {TwoFactoAuthAuthenticationFilter@18189}
 9 = {GrailsUsernamePasswordAuthenticationFilter@18190} 
 10 = {SecurityContextHolderAwareRequestFilter@18191} 
 11 = {GrailsRememberMeAuthenticationFilter@18192} 
 12 = {GrailsAnonymousAuthenticationFilter@18193} 
 13 = {ExceptionTranslationFilter@18194} 
 14 = {FilterSecurityInterceptor@18195} 

Grails BuildConfig.groovy

    ...
    dependencies {
        ...
        compile ("org.springframework.security.extensions:spring-security-saml2-core:1.0.1.RELEASE") {
            export = false
            excludes 'joda-time:joda-time:1.6.2'
        }
        compile('org.springframework.security:spring-security-core:3.2.9.RELEASE')
        compile('org.springframework.security:spring-security-web:3.2.9.RELEASE')
        compile('joda-time:joda-time:2.8.1')
    }

    ...
    plugins {
        ...
        compile ":spring-security-core:2.0.0"
        compile ":spring-security-saml:2.0.0"
        ...
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。