我跟随文章,https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory并创建了一个应用程序角色
使用hasAuthority,我可以验证单个角色。但是,我想允许管理员或具有参与者权限的用户。我尝试使用@PreAuthorize在多个角色中使用hasRole注释。
// @PreAuthorize("hasAuthority('APPROLE_Admin')")
@PreAuthorize("hasRole('Admin')")
@GetMapping("/tutorials")
public ResponseEntity<List<Tutorial>> getAllTutorials(@RequestParam(required = false) String title) {
try {
List<Tutorial> tutorials = new ArrayList<Tutorial>();
但它抛出以下错误
更新日期:2022年5月24日
此代码正在工作
@PreAuthorize("hasAnyAuthority('APPROLE_Admin', 'APPROLE_Contributor')")
但是下面的代码引发了一个错误
//@PreAuthorize("hasRole('ROLE_Admin')")
//@PreAuthorize("hasAnyRole('Admin', 'Contributor')")
//@PreAuthorize("hasAnyRole('ROLE_Admin', 'ROLE_Contributor')")
日志:
[nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : GET "/api/tutorials", parameters={}
[nio-8080-exec-5] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.bezkoder.spring.mssql.controller.TutorialController#getAllTutorials(String)
[nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Failed to complete request: org.springframework.security.access.AccessDeniedException: Access is denied
[nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : "ERROR" dispatch for GET "/error", parameters={}
[nio-8080-exec-5] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#errorHtml(HttpServletRequest, HttpServletResponse)
[nio-8080-exec-5] o.s.w.s.v.ContentNegotiatingViewResolver : Selected 'text/html' given [text/html, text/html;q=0.8]
[nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Exiting from "ERROR" dispatch, status 403
Spring Security性提供了两个表达式,我们可以使用@PreAuthorize注释来检查用户角色:
要检查单个角色,我们可以使用以下代码:
@PreAuthorize("hasRole('ROLE_ADMIN')")
@GetMapping("/user/{id}")
public String getUser(@PathVariable("id") String id)
{
...
}
我们还可以在一个表达式中检查多个角色,如下所示:
@PreAuthorize("hasAnyRole('ROLE_ADMIN','ROLE_MANAGER')")
@GetMapping("/users")
public String getUsers()
{
...
}
在这种情况下,如果用户具有任何指定角色,则允许请求。
如果在没有适当角色的情况下调用该方法,Spring Security将引发异常并重定向到错误页面。
我正在使用v12在我的不和谐机器人discord.js用户信息命令。我唯一的问题是,如果一个用户没有任何角色,最高的角色显示为@@所有人,而不是@所有人。所以我想避免它,如果用户没有任何角色,它会说“这个用户在这个服务器上没有角色”。我的代码在这里(只有与角色相关的部分): 如你所见,我试着做了,但在记录时,它会显示有关用户的所有信息,而不仅仅是角色。如何检测用户是否具有任何角色?提前感谢:)
问题内容: 我有一个脱机菜单,可以在网站上完美运行。用户既可以使用导航键也可以用手指滑动它来打开和关闭它。 现在,我有一个非常不错的navicon图标,当单击(并打开菜单)时,它会从菜单图标过渡到X图标,反之,当再次单击并关闭菜单时,它又会转变为X图标。Buuut,如果用户将菜单滑动到打开或关闭而不是使用导航按钮的状态,则不会触发过渡,这可能会导致UX混乱(即,菜单被关闭,并且导航按钮显示X而不是
我的代码中有这一点,但当我执行命令两次(名称命令、用户和角色)时,它不会返回这条消息。它一直在说“我将[角色名]添加到[用户]”
问题内容: 我对Selenium非常陌生,因此如果这是一个愚蠢的问题,我深表歉意。我已经成功地将IntelliJ(播放!框架)与Selenium连接起来,并使用firefoxDrivers创建了一些测试。 我正在尝试检查页面是否已正确验证。 长话短说,我正在选择一个像这样的元素: 我做了一些进一步的操作(清除并更改值,提交“表单”),然后我想检查输入所在的TD是否被赋予了另一个类。 因此,问题是-
问题内容: 结果集没有hasNext的方法。我想检查resultSet是否有任何值 这是正确的方法吗 问题答案: 没错,最初的光标指向第一行之前,如果第一次调用,则没有数据。 如果使用此方法,则由于它现在已定位在第一行之后,因此可能必须在复位后立即调用。 但是,应该注意的是,塞弗(Seifer)在下面的回答是对该问题的更优雅的解决方案。
问题内容: 我正在尝试使用量角器测试元素是否可见。元素的外观如下: 在chrome控制台中时,我可以使用此jQuery选择器测试该元素是否可见: 但是,当我尝试在量角器中执行相同操作时,在运行时出现此错误: 为什么这无效?如何使用量角器检查可见性? 问题答案: 应该这样做: 记住量角器的不是jQuery和不_尚_的一部分提供CSS选择器+伪选择