GRAILS Spring安全插件

时间:2015-08-03 23:18:32

标签: spring spring-mvc grails spring-security spring-ldap

我正在为我的grails应用程序使用spring安全插件,但我需要在身份验证之前预先处理用户名,例如,如果用户输入“domain \ username”,我只需要删除域。

我正在使用这些插件

    compile ":spring-security-core:2.0-RC5"
    compile ":spring-security-ldap:2.0-RC2"

另外,我无法添加自定义表单,我需要为此使用基本身份验证。谢谢。

2 个答案:

答案 0 :(得分:0)

我自己还没有这样做,但我可以瞥见你需要做什么。

LoginController不处理来自登录表单的HTTP POST。正如您在auth方法here中看到的那样,HTTP POST URL来自配置条目。 URL可能是/ j_spring_security_check。该URL对应于Spring Security过滤器,而不是Grails控制器方法。从本质上讲,您需要设置一个拦截/ j_spring_security_check的过滤器,并从用户名中剥离域名。

有很多关于这些过滤器的知识。我还在全力以赴,但是Spring Security Reference是一个很好的资源。 Twitter Auth插件子类AbstractAuthenticationProcessingFilter,使用 SpringSecurityUtils.registerFilter()实现attemptAuthentication(),然后registers过滤器。

答案 1 :(得分:0)

我能够通过覆盖BasicAuthenticationFilter来解决这个问题,并根据我的需要将doFilter()方法更改为自定义方法。