问题标签 [jsr250]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
29 浏览

java - @RolesAllowed 注释不会阻止方法执行,用户没有所需的角色但方法仍然被调用

验证后,我可以访问并调用HomeServlet该方法。new Logic().doSomething()

考虑到我的用户只有角色,不应该抛出异常TutorialUser吗?

RolesAllowed在方法上使用了注释,值为ADMIN.

HomeServlet.java

Logic.java,其中包含一个只允许由具有角色的用户执行的方法ADMIN

web.xml

0 投票
0 回答
29 浏览

java - 通过注解和 Spring Security 进行 Servlet 访问授权

在尝试实现 Spring Security 和 OAuth2 时,我已经能够通过一个包含 2 个 servlet 的非常简单的示例来完成工作,但是在保护其中一个 servlet 访问时遇到了问题:“AdminTestServlet”应该只授权给具有角色的用户“行政”。它在使用 WebSecurityConfigurerAdapter 的“配置”方法时起作用(参见 antMatchers):

但现在我想删除 antMatchers 并通过注释设置授权。理想情况下,它应该是标准的 JavaEE 注释(用于 servlet 的 @ServletSecurity)。但是在尝试在 Admin servlet 上设置它们时它不起作用(即,如果我有 ADMIN 角色,我总是会收到 403 错误事件):

顺便说一句,我也没有使用 Spring 特定的注释(@Secured):总是允许访问(没有 403)。有很多关于在依赖 JSR-250 的 JAX-RS 端点上设置授权注释的帖子:@RolesAllowed。但是我找不到任何关于 Servlet 这样做的信息。如果有人可以帮助我。也许这是不可能的?

谢谢