1

我正在使用自定义的 UserDetailService ,它可以很好地进行身份验证。问题是我不能使用基于角色的约束。

奇怪的是,我从 Controller 获得了正确的权限:

public ModelAndView getMembers(HttpServletRequest request, Authentication auth) 
{
   if(auth != null)
   {
      for (GrantedAuthority ga : auth.getAuthorities())
      {
         // works find and logs "ADMIN", btw. I'm using SimpleGrantedAuthority
         this.logger.debug("0{}", ga);
      }
   }
}

但是随着配置

http
   .csrf().disable()
   .authorizeRequests()
   .antMatchers("/Admin/**").hasRole("ADMIN")
   …

用户无法访问例如 /Admin/Member 的页面。

thymeleaf-security-tags 也是如此,例如

<div sec:authorize="isAuthenticated() && hasRole('ADMIN')">Hello Admin!</div>

不显示“你好管理员!” 对于控制器记录权限“ADMIN”的用户。

我猜我错过了一些东西或使用了错误的东西。

感谢您的时间和帮助。

4

1 回答 1

1
于 2019-03-30T10:23:19.130 回答