Spring-Boot结合Security+JWT 简单实现前后端分离用户登录、授权案例

上传者: u011109679 | 上传时间: 2021-07-12 21:01:12 | 文件大小: 20.06MB | 文件类型: ZIP
Spring-Security结合JWT 实现前后端分离完成权限验证功能案例,案例中,主要完成用户登录获取Token,通过Token访问Rest接口,没有权限或授权失败时返回JSON,前端根据状态码进行重新登录;案例中的用户名称: jake_j,密码:123。用户、角色、及菜单权限都是代码中指定的,未实现查询数据库相关数据。正常开发需要和现有系统数据库结合,这里只是简单说明整体用户认证、授权流程逻辑说明。 仓库地址:https://gitee.com/JakeRhino/spring-security-jwt-demo

文件下载

资源详情

[{"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}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明