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

预授权注释不能用于jersey

宗政子琪
2023-03-14

我正在尝试使用Spring Security注释保护一个泽西服务,但没有任何运气。

我已将此部分添加到web.xml中:

<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.test.proj.ui.web.rest;com.fasterxml.jackson.jaxrs</param-value>
    </init-param>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.test.commons.ui.web.jersey.RestApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<global-method-security secured-annotations="enabled" pre-post-annotations="enabled" />
@Component
@Path("/user/{uid: .*}")
public class UserResource {
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @PreAuthorize("hasRole('ROLE_MANAGE_USER')")
    public Response getUserDetail(@PathParam("uid") String uid) {
        return "Hi, this is a test";
    }
}

知道吗?

谢谢

共有1个答案

苗康平
2023-03-14

spring组件扫描没有正确配置!要解决这个问题,只需正确添加组件扫描,它就能工作。

 类似资料:
  • 我发现了许多类似的问题,但没有一个解决了我的问题。我的问题是可以访问的函数 下面是我的spring-security.xml代码。

  • EDIT做了一些更多的测试:当我只配置secure-annotations=“enabled”时,基于角色的安全性工作。此外,配置pre-postannotations=“enabled”时,既不安全也不预授权。当我只配置前-后注释时,它仍然不起作用。 编辑2 更多的测试:只有secured_annotations=“enabled”,对channelservice的调用通过Cglib2AopPr

  • 我正在试图理解一些Spring Security代码。我也是Spring Security的新手,我想我在这里遗漏了一些基本的东西。 谢谢,雷。

  • MyControllerTest.java ApplicationContext-test.xml MyController.java

  • 我有spring security应用程序,希望在其中启用注释安全性(授权前和授权后)。我还有一个小示例应用程序,我已经在其中实现了它。一切正常。但将配置移动到主应用程序失败。控制台中没有错误。但注释不起作用。看来,他们根本没有读过。所有配置和组件版本完全相同。 有 解决了!

  • 请求参数说明 参数 描述 必填 示例值 类型 最大长度 action 接口参数组 是 object └action 需要调用的接口名称 是 pre_thaw string get GET参数组,本组参数需要参与签名 是 object └biz_id 业务单号(biz_id与payid只传其一) 是 20191125001 number └amt 解冻金额(退款给客人金额,0或者空表示商家收取全部费