grails - Grails Spring Security InterceptUrlMap无法正常工作

标签 grails spring-security grails-plugin

我将Siteminder与一个应用程序一起使用,但正在使用Spring Security核心插件来管理安全性的所有其他方面。我并没有被某些需要特定角色的资源所阻止,尽管如果尝试访问该URL,我会被踢到requestHeaderAuthenticationFilter。

配置槽

...    
grails.plugin.springsecurity.securityConfigType =   grails.plugin.springsecurity.SecurityConfigType.InterceptUrlMap
grails.plugin.springsecurity.providerNames = ['preauthAuthProvider', 'anonymousAuthenticationProvider']
grails.plugin.springsecurity.filterNames = ['anonymousAuthenticationFilter','requestHeaderAuthenticationFilter']
grails.plugin.springsecurity.filterChain.filterNames = ['anonymousAuthenticationFilter','requestHeaderAuthenticationFilter']
grails.plugin.springsecurity.filterChain.chainMap = [
       '/assets/**': 'anonymousAuthenticationFilter',
       '/public/**': 'anonymousAuthenticationFilter',
       '/auth/**': 'requestHeaderAuthenticationFilter'
]
grails.plugin.springsecurity.x509.checkForPrincipalChanges = 'true'
grails.plugin.springsecurity.logout.afterLogoutUrl='/public/'
grails.plugin.springsecurity.successHandler.defaultTargetUrl = '/auth/home'

grails.plugin.springsecurity.interceptUrlMap = [
    '/auth/admin':                   ['ROLE_SYSTEM_ADMIN'],
    '/auth/constant/**':             ['ROLE_SYSTEM_ADMIN'],
    '/assets/**':                    ['IS_AUTHENTICATED_ANONYMOUSLY'],
    '/public/**':                    ['IS_AUTHENTICATED_ANONYMOUSLY'],
    '/auth/**':                      ['IS_AUTHENTICATED_FULLY']
]

当我使用taglib是否显示到这些链接时,它按预期工作:
<sec:ifAnyGranted roles="ROLE_SYSTEM_ADMIN">
    <g:link uri="/auth/admin">Admin</g:link>
</sec:ifAnyGranted>

我在URLMappings中将所有内容归为一组:
static mappings = {
    group("/auth") {
        "/constant/$action?/$id?(.${format})?"(controller: 'constant')
        "/admin"(view:'/admin')
        "/"(controller:'index',action:'home')
        "/home"(controller:'index',action:'home')
    }
    group("/public") {
        "/"(controller:'index',action:'public')
        "/index"(controller:'index',action:'public')
    }
}

因此,该标签似乎正常工作,但是我仍然可以正常访问该链接,这意味着我的设置必须在某个地方弄乱了。

Grails 2.4.3

Spring 安全核心2.0-RC4

最佳答案

grails.plugin.springsecurity.securityConfigType = "InterceptUrlMap"

通过在您的config.groovy中编辑此行可以帮助我

关于grails - Grails Spring Security InterceptUrlMap无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30355858/

相关文章:

grails - 保护 gsp 文件的安全

spring-security - 尝试使用 session 管理时出错

grails - 我将如何覆盖 taglib bean 中的方法?

intellij-idea - Google-analytics与grails 4.x应用的集成

logging - 登录grails集成测试?

grails - Quartz Grails插件

grails - 如何在Grails Spring Security自定义UserDetailsS​​ervices类中获取URL参数?

web-services - GRAILS SOAP CLIENT WSS​​ITE参数

grails - Grails脚本中的HttpBuilder

spring - Grails 3.0.2 无法解析 Controller 中的@Secured 注释