Java 将denyAll()和permitAll()一起使用Spring security 3.0.8不起作用
我们得到了一个使用SpringSecurity3.0.8保护的Web应用程序。我们经常将DWR用于ajax。现在,我们要拒绝访问所有DWR调用,除非明确指定: 这是我做的,但不起作用:Java 将denyAll()和permitAll()一起使用Spring security 3.0.8不起作用,java,spring,spring-security,Java,Spring,Spring Security,我们得到了一个使用SpringSecurity3.0.8保护的Web应用程序。我们经常将DWR用于ajax。现在,我们要拒绝访问所有DWR调用,除非明确指定: 这是我做的,但不起作用: <!-- Deny every url which is dwr call --> <intercept-url pattern="/js/dwr/**/**DWR**" access="denyAll"/> <!-- give access to SomeDWRClass for
<!-- Deny every url which is dwr call -->
<intercept-url pattern="/js/dwr/**/**DWR**" access="denyAll"/>
<!-- give access to SomeDWRClass for ROLE_A -->
<intercept-url pattern="/js/dwr/**/SomeDWRClass**" access="hasAnyRole('ROLE_A')"/>
<!-- Give access to everybody for CommonDwr.aCommonMethod.dwr -->
<intercept-url pattern="/js/dwr/CommonDwr.aCommonMethod.dwr" access="permitAll"/>
问题是,每当调用CommonDwr.aCommonMethod.dwr时,其显示的访问被拒绝。为什么?这是因为denyAll比permitAll具有更高的优先级吗?
如果是或不是,我如何解决这个问题?我确信有很多人不得不像这样保护他们的应用程序
我们这样做的主要原因是,如果有新人来编写一个新的DWR类,默认情况下,权限应该被拒绝,以便他们可以显式地为新类设置访问角色。拦截url模式按照列出的顺序匹配。 一旦找到匹配项,其余指定的模式将被忽略 这就是为什么您应该在前面列出更具体的模式 在您的情况下,具体的url模式会在后面出现。因此,
denyAll
首先找到并选择了那个
尊重秩序
<!-- Give access to everybody for CommonDwr.aCommonMethod.dwr -->
<intercept-url pattern="/js/dwr/CommonDwr.aCommonMethod.dwr" access="permitAll"/>
<!-- give access to SomeDWRClass for ROLE_A -->
<intercept-url pattern="/js/dwr/**/SomeDWRClass**" access="hasAnyRole('ROLE_A')"/>
<!-- Deny every url which is dwr call -->
<intercept-url pattern="/js/dwr/**/**DWR**" access="denyAll"/>
看
但是我不明白原因
我们这样做的主要原因是,如果某个新人来编写一个新的DWR类,默认情况下应该拒绝该权限,以便他们可以显式地为新类设置访问角色
创建角色以限制开发人员?通常,角色是指应用程序提供的用户和功能。拦截url模式按所列顺序匹配。 一旦找到匹配项,其余指定的模式将被忽略 这就是为什么您应该在前面列出更具体的模式 在您的情况下,具体的url模式会在后面出现。因此,
denyAll
首先找到并选择了那个
尊重秩序
<!-- Give access to everybody for CommonDwr.aCommonMethod.dwr -->
<intercept-url pattern="/js/dwr/CommonDwr.aCommonMethod.dwr" access="permitAll"/>
<!-- give access to SomeDWRClass for ROLE_A -->
<intercept-url pattern="/js/dwr/**/SomeDWRClass**" access="hasAnyRole('ROLE_A')"/>
<!-- Deny every url which is dwr call -->
<intercept-url pattern="/js/dwr/**/**DWR**" access="denyAll"/>
看
但是我不明白原因
我们这样做的主要原因是,如果某个新人来编写一个新的DWR类,默认情况下应该拒绝该权限,以便他们可以显式地为新类设置访问角色
创建角色以限制开发人员?通常,角色是指应用程序提供的用户和功能。拦截url模式按所列顺序匹配。 一旦找到匹配项,其余指定的模式将被忽略 这就是为什么您应该在前面列出更具体的模式 在您的情况下,具体的url模式会在后面出现。因此,
denyAll
首先找到并选择了那个
尊重秩序
<!-- Give access to everybody for CommonDwr.aCommonMethod.dwr -->
<intercept-url pattern="/js/dwr/CommonDwr.aCommonMethod.dwr" access="permitAll"/>
<!-- give access to SomeDWRClass for ROLE_A -->
<intercept-url pattern="/js/dwr/**/SomeDWRClass**" access="hasAnyRole('ROLE_A')"/>
<!-- Deny every url which is dwr call -->
<intercept-url pattern="/js/dwr/**/**DWR**" access="denyAll"/>
看
但是我不明白原因
我们这样做的主要原因是,如果某个新人来编写一个新的DWR类,默认情况下应该拒绝该权限,以便他们可以显式地为新类设置访问角色
创建角色以限制开发人员?通常,角色是指应用程序提供的用户和功能。拦截url模式按所列顺序匹配。 一旦找到匹配项,其余指定的模式将被忽略 这就是为什么您应该在前面列出更具体的模式 在您的情况下,具体的url模式会在后面出现。因此,
denyAll
首先找到并选择了那个
尊重秩序
<!-- Give access to everybody for CommonDwr.aCommonMethod.dwr -->
<intercept-url pattern="/js/dwr/CommonDwr.aCommonMethod.dwr" access="permitAll"/>
<!-- give access to SomeDWRClass for ROLE_A -->
<intercept-url pattern="/js/dwr/**/SomeDWRClass**" access="hasAnyRole('ROLE_A')"/>
<!-- Deny every url which is dwr call -->
<intercept-url pattern="/js/dwr/**/**DWR**" access="denyAll"/>
看
但是我不明白原因
我们这样做的主要原因是,如果某个新人来编写一个新的DWR类,默认情况下应该拒绝该权限,以便他们可以显式地为新类设置访问角色
创建角色以限制开发人员?通常,角色是指应用程序提供的用户和功能。谢谢。“创建角色以限制开发人员”-不,实际上不是。我们只是遵循安全策略——“默认拒绝”谢谢。“创建角色以限制开发人员”-不,实际上不是。我们只是遵循安全策略——“默认拒绝”谢谢。“创建角色以限制开发人员”-不,实际上不是。我们只是遵循安全策略——“默认拒绝”谢谢。“创建角色以限制开发人员”-不,实际上不是。我们只是遵循安全策略——“默认拒绝”