Перехват авторизации в Apache Shiro с интеграцией Spring Boot не работает

#spring-boot #shiro

#пружинный ботинок #широ

Вопрос:

Перехват авторизации в Apache Shiro с интеграцией Spring Boot не работает

 @Override  protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {  User user = (User) SecurityUtils.getSubject().getPrincipal();  logger.info(user.getUsername() "----------------------------" user.getRoles());  if (user != null) {  SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();  info.addStringPermission(user.getPerms());  return info;  }  return null;  }  

это контроллер

 @Controller @RequestMapping("/admin") public class LoginController {   @Autowired  private UserService userService;   @GetMapping({"","/login"})  public String loginPage(){  return "admin/login";  }   @PostMapping("/login")  public String login(@RequestParam String username, @RequestParam String password) throws Exception {  Subject subject = SecurityUtils.getSubject();  UsernamePasswordToken token = new UsernamePasswordToken(username,password);  try {  subject.login(token);  return "admin/index";  } catch (IncorrectCredentialsException ice) {  throw new MyException(ResultCode.INCORRECTCREDENTAILERROR);  } catch (UnknownAccountException uae) {  throw new MyException(ResultCode.UNKONWNACCOUNTERROR);  } catch (AuthenticationException ae) {  throw new MyException(ResultCode.USERNAMEPASSWORDERROR);  }  }  @RequestMapping("/index")  public String adminIndex(){  return "admin/index";  } }  

вот перехват, где "/admin/**" , "perms[admin:manage]" не работает, но замените его на "/admin/index" , "perms[admin:manage]" и он работает.

 @Bean(name = "shiroFilter")  public ShiroFilterFactoryBean shiroFilter(@Qualifier("securityManager") DefaultWebSecurityManager securityManager){  ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();  bean.setSecurityManager(securityManager);  bean.setLoginUrl("/admin/login");  bean.setUnauthorizedUrl("/");  Maplt;String,Stringgt; filterChainDefinitionMap = new LinkedHashMaplt;gt;();  filterChainDefinitionMap.put("/css/**", "anon");  filterChainDefinitionMap.put("/images/**", "anon");  filterChainDefinitionMap.put("/js/**", "anon");  filterChainDefinitionMap.put("/lib/**", "anon");  filterChainDefinitionMap.put("/", "anon");  filterChainDefinitionMap.put("/admin", "anon");   //problem here  filterChainDefinitionMap.put("/admin/**", "perms[admin:manage]");   filterChainDefinitionMap.put("/admin/**", "authc");  filterChainDefinitionMap.put("/**", "anon");  bean.setFilterChainDefinitionMap(filterChainDefinitionMap);  return bean;  }