当前位置: 首页 > 知识库问答 >
问题:

Spring Security 3.2:未考虑@安全注释

吕志诚
2023-03-14

我正在尝试使用Spring 3.2.4和Spring Security 3.2保护我的RESTful API,并使用@Secured注释。我有以下设置:

网状物xml:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath*:spring/*.xml
        /WEB-INF/classes/security/security-context.xml
    </param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- Spring Security -->
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<!-- Servlet configuration -->
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/servlet/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

servlet上下文。xml:

<context:component-scan base-package="com.mycompany.rest.controller" />
<security:global-method-security secured-annotations="enabled" />

安全上下文。xml

<beans:bean id="merchantUserDetailsService" class="com.mycompany.rest.security.CustomUserDetailsService" /> 

<http auto-config="false" create-session="never">
    <http-basic />
</http>

<authentication-manager>
    <authentication-provider user-service-ref="customUserDetailsService" />
</authentication-manager>

我正在以编程方式将customUserDetailsService中的自定义角色(ROLE\u GROUP、ROLE\u DIVISION、ROLE\u READ、ROLE\u WRITE)分配给用户,这很好。

我的一个控制器:

@Secured("ROLE_DIVISION")
@RequestMapping(method = RequestMethod.GET)
ResponseEntity<List<CustomerResource>> getCustomer() throws ResourceDoestNotExistException {
    List<Customer> providers = // retrieve providers from DAO
    List<CustomerResource> resources = customerResourceAssembler.toResources(customers);
    return new ResponseEntity<>(resources, HttpStatus.OK);
}

现在是我的问题,@安全注释被忽略了。我想使用@安全注释来避免在配置中定义多个。当我至少添加一个时,Spring Security可以正常工作,但是如何避免定义它们而不是依赖@安全注释呢?

我现在可以使用角色为“ROLE_GROUP”的用户访问上述方法。

共有1个答案

施华奥
2023-03-14

看起来您一切正常,只是启用了错误类型的批注。如果您查看文档中的全局方法安全性,您将看到一个名为安全注释的单独属性,该属性启用安全注释。

 类似资料:
  • 作为一个灵活的可扩展的框架,OAuth的安全性考量依赖于许多因素。 以下小节提为实现者提供了聚焦在2.1节所述的三种客户端配置上的安全指南:Web应用、基于用户代理的应用和本地应用程序。 全面的OAuth安全模型和分析以及该协议设计的背景在[OAuth-THREATMODE]中提供。 10.1. 客户端身份验证 10.2. 客户端仿冒 10.3. 访问令牌 10.4. 刷新令牌 10.5. 授权码

  • 10.1. Server Authority 10.1. 服务器授权 HTTP/2 relies on the HTTP/1.1 definition of authority for determining whether a server is authoritative in providing a given response (see [RFC7230], Section 9.1). T

  • 尽管在通常情况下编写一个按照预期运行的软件很简单, 但想要确保没有人能够以出乎意料的方式使用它就困难多了。 在 Solidity 中,这一点尤为重要,因为智能合约可以用来处理通证,甚至有可能是更有价值的东西。 除此之外,智能合约的每一次执行都是公开的,而且源代码也通常是容易获得的。 当然,你总是需要考虑有多大的风险: 你可以将智能合约与公开的(当然也对恶意用户开放)、甚至是开源的网络服务相比较。

  • 问题内容: 如果我在matplotlib图上添加了字幕,则该字幕会被该字幕图的标题覆盖。有人知道如何轻松地解决这个问题吗?我尝试过该功能,但只会使情况变得更糟。 例: 问题答案: 您可以在调用中调整子图的几何形状,如下所示: 如文档(https://matplotlib.org/users/tight_layout_guide.html)中所述: 仅考虑刻度标签,轴标签和标题。因此,其他艺术家可能

  • 我创建了一个前端vue。以springboot微服务作为后端的js。我正在尝试从前端vue调用后端(在本地网络的另一台pc 192.168.0.10:9090上运行)。js开发服务器(运行localhost:8080)。 我配置了vue.config.js官网链接: 测试2:结果与 测试3:与测试结果相同 我的商店。js 测试2: 我没有成功使用我在vue.config.js.声明的代理 问题:所

  • 我使用Spring安全,我试图允许一个帖子不需要连接。 所以在一个类谁扩展 WebSecurityConfigurerAdapter 当我试着呼叫这个控制器时 ....} 我明白了 只是不明白为什么当我指定允许的时候,帖子是安全的