![]() |
1
3
假设您使用的是SpringSecurity3,那么信息的来源(为特定路径配置了哪些属性/角色)是注入到FilterSecurityInterceptor中的FilterInvocationSecurityMetadatasource。因此,如果您有一个特定的URL,那么您可以通过将FieldCutoOutlook(从请求和响应创建)传递到FieldVoCutoSturalSturyMeta数据源的GETAtestTeX()方法来查询所配置的属性。 获取对命名空间创建的内部bean的引用可能有点棘手。假设您有自己的bean(或bean)要从中调用,可以通过将BeaPress处理器添加到应用程序上下文中,将其注入到它们中,实现了如下内容:
注意,Spring Security在上下文中自动注册WebViuCasePrimeError,可以用来检查用户是否有能力调用一个特定的URL而不实际调用它。这是类似的,因为它查询securitymetadatasource,但不完全是在这里。 |
![]() |
2
2
不要忘记,在决定是否允许访问时,实际发生的情况是url和现有的身份验证通过一系列 AccessDecisionVoter s,其中一个默认值是 RoleVoter 。此投票者检查所请求资源的配置,如果需要特定角色,则在现有身份验证不具有该角色时将拒绝该请求。 因此,你可以在选民投票前加入其他选民。每个投票者必须返回grant、deny或弃权,并且只有在返回弃权时,处理过程才会继续到以后的投票者。因此,您可以编写您自己的自定义选民(或重用现有的一个,如果这将工作),让它在角色选民之前开火,并且无条件地授予对您所指资源的任何请求的访问权。 在一个当前的项目中,我做了一些类似的事情,在某些项目中,特定的临时应用程序属性可以让人访问他们通常无法访问的资源,并且它作为一种方法工作得很好。 |