RoleResourceConfiguration.java 1.4 KB

123456789101112131415161718192021222324
  1. package com.yaozhitech.spring5.config;
  2. import org.apache.shiro.spring.web.config.DefaultShiroFilterChainDefinition;
  3. import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. @Configuration
  7. public class RoleResourceConfiguration {
  8. // @Bean
  9. public ShiroFilterChainDefinition shiroFilterChainDefinition() {
  10. DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition();
  11. // chainDefinition.addPathDefinition("/login", "noSessionCreation,anon"); //login不做认证,noSessionCreation的作用是用户在操作session时会抛异常
  12. // chainDefinition.addPathDefinition("/logout", "noSessionCreation,authcToken[permissive]"); //做用户认证,permissive参数的作用是当token无效时也允许请求访问,不会返回鉴权未通过的错误
  13. // chainDefinition.addPathDefinition("/image/**", "anon");
  14. chainDefinition.addPathDefinition("/admin/**", "noSessionCreation,authcToken,anyRole[admin,manager]"); // 只允许admin或manager角色的用户访问
  15. chainDefinition.addPathDefinition("/article/list", "noSessionCreation,authcToken");
  16. chainDefinition.addPathDefinition("/article/*", "noSessionCreation,authcToken[permissive]");
  17. chainDefinition.addPathDefinition("/**", "noSessionCreation,authcToken"); // 默认进行用户鉴权
  18. return chainDefinition;
  19. }
  20. }