[{"title":"( 77 个子文件 20.06MB ) Spring-Boot结合Security+JWT 简单实现前后端分离用户登录、授权案例","children":[{"title":".gitignore <span style='color:#111;'> 498B </span>","children":null,"spread":false},{"title":"src","children":[{"title":"main","children":[{"title":"resources","children":[{"title":"logback-spring.xml <span style='color:#111;'> 2.53KB </span>","children":null,"spread":false},{"title":"application.yml <span style='color:#111;'> 472B </span>","children":null,"spread":false}],"spread":true},{"title":"java","children":[{"title":"com","children":[{"title":"rhino","children":[{"title":"App.java <span style='color:#111;'> 305B </span>","children":null,"spread":false},{"title":"controller","children":[{"title":"AdminController.java <span style='color:#111;'> 516B </span>","children":null,"spread":false},{"title":"TestController.java <span style='color:#111;'> 3.67KB </span>","children":null,"spread":false}],"spread":true},{"title":"security","children":[{"title":"handler","children":[{"title":"RestAccessDeniedHandler.java <span style='color:#111;'> 2.06KB </span>","children":null,"spread":false},{"title":"EntryPointUnauthorizedHandler.java <span style='color:#111;'> 1.74KB </span>","children":null,"spread":false},{"title":"JwtLogoutSuccessHandler.java <span style='color:#111;'> 1.36KB </span>","children":null,"spread":false},{"title":"JwtResponseBodyHanlder.java <span style='color:#111;'> 2.64KB </span>","children":null,"spread":false},{"title":"JwtAuthenticationSuccessHandler.java <span style='color:#111;'> 2.02KB </span>","children":null,"spread":false},{"title":"JwtAuthenticationFailureHandler.java <span style='color:#111;'> 1.79KB </span>","children":null,"spread":false}],"spread":true},{"title":"filter","children":[{"title":"JwtAuthenticationTokenFilter.java <span style='color:#111;'> 4.00KB </span>","children":null,"spread":false}],"spread":true},{"title":"controller","children":[{"title":"SecurityTokenController.java <span style='color:#111;'> 1.01KB </span>","children":null,"spread":false}],"spread":true},{"title":"utils","children":[{"title":"JwtTokenUtil.java <span style='color:#111;'> 5.90KB </span>","children":null,"spread":false}],"spread":true},{"title":"service","children":[{"title":"MyPasswordEncoder.java <span style='color:#111;'> 1.76KB </span>","children":null,"spread":false},{"title":"RefreshJWTTokenService.java <span style='color:#111;'> 524B </span>","children":null,"spread":false},{"title":"impl","children":[{"title":"RefreshJWTTokenServiceImpl.java <span style='color:#111;'> 2.29KB </span>","children":null,"spread":false},{"title":"JwtUserDetailsServiceImpl.java <span style='color:#111;'> 2.30KB </span>","children":null,"spread":false}],"spread":false},{"title":"AuthorityPermissionService.java <span style='color:#111;'> 1.56KB </span>","children":null,"spread":false},{"title":"MyPermissionEvaluator.java <span style='color:#111;'> 2.24KB </span>","children":null,"spread":false}],"spread":false},{"title":"properties","children":[{"title":"JWTProperties.java <span style='color:#111;'> 479B </span>","children":null,"spread":false},{"title":"SecurityProperties.java <span style='color:#111;'> 489B </span>","children":null,"spread":false}],"spread":false},{"title":"vo","children":[{"title":"JWTTokenVO.java <span style='color:#111;'> 750B </span>","children":null,"spread":false},{"title":"JwtUser.java <span style='color:#111;'> 937B </span>","children":null,"spread":false},{"title":"RestResult.java <span style='color:#111;'> 2.03KB </span>","children":null,"spread":false}],"spread":false},{"title":"constants","children":[{"title":"SecurityConstants.java <span style='color:#111;'> 1.50KB </span>","children":null,"spread":false}],"spread":false},{"title":"datasourceaccess","children":[{"title":"MyFilterInvocationSecurityMetadataSource.java <span style='color:#111;'> 3.16KB </span>","children":null,"spread":false},{"title":"MyAccessDecisionManager.java <span style='color:#111;'> 2.16KB </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"config","children":[{"title":"Swagger3Config.java <span style='color:#111;'> 1.26KB </span>","children":null,"spread":false},{"title":"WebSecurityConfig.java <span style='color:#111;'> 6.78KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"test","children":[{"title":"java","children":[{"title":"com","children":[{"title":"rhino","children":[{"title":"AppTest.java <span style='color:#111;'> 301B </span>","children":null,"spread":false},{"title":"jwt","children":[{"title":"JWTTest.java <span style='color:#111;'> 2.25KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"LICENSE <span style='color:#111;'> 34.36KB </span>","children":null,"spread":false},{"title":"springboottest.iml <span style='color:#111;'> 81B </span>","children":null,"spread":false},{"title":"pom.xml <span style='color:#111;'> 3.94KB </span>","children":null,"spread":false},{"title":"target","children":[{"title":"classes","children":[{"title":"com","children":[{"title":"rhino","children":[{"title":"controller","children":[{"title":"AdminController.class <span style='color:#111;'> 682B </span>","children":null,"spread":false},{"title":"TestController.class <span style='color:#111;'> 2.72KB </span>","children":null,"spread":false}],"spread":true},{"title":"App.class <span style='color:#111;'> 653B </span>","children":null,"spread":false},{"title":"security","children":[{"title":"handler","children":[{"title":"RestAccessDeniedHandler.class <span style='color:#111;'> 2.20KB </span>","children":null,"spread":false},{"title":"JwtAuthenticationFailureHandler.class <span style='color:#111;'> 2.36KB </span>","children":null,"spread":false},{"title":"JwtResponseBodyHanlder.class <span style='color:#111;'> 3.75KB </span>","children":null,"spread":false},{"title":"JwtLogoutSuccessHandler.class <span style='color:#111;'> 2.11KB </span>","children":null,"spread":false},{"title":"JwtAuthenticationSuccessHandler.class <span style='color:#111;'> 2.54KB </span>","children":null,"spread":false},{"title":"EntryPointUnauthorizedHandler.class <span style='color:#111;'> 2.58KB </span>","children":null,"spread":false}],"spread":true},{"title":"filter","children":[{"title":"JwtAuthenticationTokenFilter.class <span style='color:#111;'> 4.95KB </span>","children":null,"spread":false}],"spread":true},{"title":"controller","children":[{"title":"SecurityTokenController.class <span style='color:#111;'> 1.09KB </span>","children":null,"spread":false}],"spread":false},{"title":"utils","children":[{"title":"JwtTokenUtil.class <span style='color:#111;'> 6.84KB </span>","children":null,"spread":false}],"spread":false},{"title":"service","children":[{"title":"RefreshJWTTokenService.class <span style='color:#111;'> 261B </span>","children":null,"spread":false},{"title":"MyPasswordEncoder.class <span style='color:#111;'> 1.85KB </span>","children":null,"spread":false},{"title":"impl","children":[{"title":"JwtUserDetailsServiceImpl.class <span style='color:#111;'> 2.38KB </span>","children":null,"spread":false},{"title":"RefreshJWTTokenServiceImpl.class <span style='color:#111;'> 2.68KB </span>","children":null,"spread":false}],"spread":false},{"title":"MyPermissionEvaluator.class <span style='color:#111;'> 1.49KB </span>","children":null,"spread":false},{"title":"AuthorityPermissionService.class <span style='color:#111;'> 2.01KB </span>","children":null,"spread":false}],"spread":false},{"title":"properties","children":[{"title":"SecurityProperties.class <span style='color:#111;'> 862B </span>","children":null,"spread":false},{"title":"JWTProperties.class <span style='color:#111;'> 3.55KB </span>","children":null,"spread":false}],"spread":false},{"title":"vo","children":[{"title":"RestResult.class <span style='color:#111;'> 3.67KB </span>","children":null,"spread":false},{"title":"JwtUser.class <span style='color:#111;'> 1.54KB </span>","children":null,"spread":false},{"title":"JWTTokenVO.class <span style='color:#111;'> 2.56KB </span>","children":null,"spread":false}],"spread":false},{"title":"constants","children":[{"title":"SecurityConstants.class <span style='color:#111;'> 1.55KB </span>","children":null,"spread":false}],"spread":false},{"title":"datasourceaccess","children":[{"title":"MyAccessDecisionManager.class <span style='color:#111;'> 2.66KB </span>","children":null,"spread":false},{"title":"MyFilterInvocationSecurityMetadataSource.class <span style='color:#111;'> 3.32KB </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"config","children":[{"title":"Swagger3Config.class <span style='color:#111;'> 2.26KB </span>","children":null,"spread":false},{"title":"WebSecurityConfig.class <span style='color:#111;'> 10.79KB </span>","children":null,"spread":false},{"title":"WebSecurityConfig$1.class <span style='color:#111;'> 2.03KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true},{"title":"logback-spring.xml <span style='color:#111;'> 2.53KB </span>","children":null,"spread":false},{"title":"application.yml <span style='color:#111;'> 454B </span>","children":null,"spread":false}],"spread":true},{"title":"springboottest-1.0-SNAPSHOT.jar <span style='color:#111;'> 22.23MB </span>","children":null,"spread":false},{"title":"generated-test-sources","children":[{"title":"test-annotations","children":null,"spread":false}],"spread":true},{"title":"maven-archiver","children":[{"title":"pom.properties <span style='color:#111;'> 68B </span>","children":null,"spread":false}],"spread":true},{"title":"surefire-reports","children":[{"title":"TEST-com.rhino.AppTest.xml <span style='color:#111;'> 21.84KB </span>","children":null,"spread":false},{"title":"com.rhino.AppTest.txt <span style='color:#111;'> 287B </span>","children":null,"spread":false}],"spread":true},{"title":"springboottest-1.0-SNAPSHOT.jar.original <span style='color:#111;'> 11.75KB </span>","children":null,"spread":false},{"title":"generated-sources","children":[{"title":"annotations","children":null,"spread":false}],"spread":true},{"title":"test-classes","children":[{"title":"com","children":[{"title":"rhino","children":[{"title":"AppTest.class <span style='color:#111;'> 465B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":true},{"title":"maven-status","children":[{"title":"maven-compiler-plugin","children":[{"title":"compile","children":[{"title":"default-compile","children":[{"title":"inputFiles.lst <span style='color:#111;'> 411B </span>","children":null,"spread":false},{"title":"createdFiles.lst <span style='color:#111;'> 0B </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"testCompile","children":[{"title":"default-testCompile","children":[{"title":"inputFiles.lst <span style='color:#111;'> 74B </span>","children":null,"spread":false},{"title":"createdFiles.lst <span style='color:#111;'> 0B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true}]