如何允许基于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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...