File tree Expand file tree Collapse file tree
src/main/java/acheng1314/cn Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11# MySpringBoot
2- 2018-02-05
3- 很开心,有好的资料,好的项目代码供我学习参考,非常感谢很多无私奉献的教程,
4- 你们的殷勤奉献,没齿难忘。
2+ 2018-02-05----
3+ 声明:资料仅供学习使用,严禁任何商业用途。造福学者,做一个无声的媒介。
4+ 很开心,有好的资料,好的项目代码供我学习参考,非常感谢很多无私奉献的教程,
5+ 你们的殷勤奉献,没齿难忘。
56 1.项目教程地址:http://acheng1314.cn/front/post/412
67 2.学习资料一:http://blog.csdn.net/ityouknow/article/details/70139667
7- 后续待更新,睡觉咯
8+ 后续待更新,
9+ 2018-02-07----
10+ 理解 shiro
11+ Shiro的核心部分是SecurityManager,它负责安全认证与授权。Shiro本身已经实现了所有的细节,用户可以完全把它当做一个黑盒来使用。SecurityUtils对象,本质上就是一个工厂类似Spring中的ApplicationContext。Subject是初学者比较难于理解的对象,很多人以为它可以等同于User,其实不然。Subject中文翻译:项目,而正确的理解也恰恰如此。
12+ 它是你目前所设计的需要通过Shiro保护的项目的一个抽象概念。通过令牌(token)与项目(subject)的登陆(login)关系,Shiro保证了项目整体的安全。
13+ 框架解析:https://www.cnblogs.com/learnhow/p/5694876.html
Original file line number Diff line number Diff line change @@ -30,6 +30,19 @@ public Object getGoodsList() {
3030 if (null != userList && userList .isEmpty ()) return GsonUtils .toJsonObjStr (null , ResponseCode .EMPTY , null );
3131 return GsonUtils .toJsonObjStr (userList , ResponseCode .OK , "获取数据成功!" );
3232 }
33-
33+ /**
34+ * 教程资料:
35+ * 常见swagger注解一览与使用
36+ *最常用的5个注解
37+ * @Api:修饰整个类,描述Controller的作用
38+ * @ApiOperation:描述一个类的一个方法,或者说一个接口
39+ * @ApiParam:单个参数描述
40+ * @ApiModel:用对象来接收参数
41+ * @ApiProperty:用对象接收参数时,描述对象的一个字段
42+ *
43+ * 例子:
44+ @ApiParam(value = "token", required = true) @RequestParam String token
45+ Web前端/移动端HTTP请求方式:直接把参数附带到URL后面,或者用AJAX方法,表单提交。
46+ */
3447
3548}
Original file line number Diff line number Diff line change 2525@ Api (description = "控制后端页面导航,后端文件上传控制" )
2626public class SysMainController {
2727
28+ // @GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。
29+ // 该注解将HTTP Get 映射到 特定的处理方法上。
2830 @ GetMapping (value = "/index" , produces = MediaType .TEXT_HTML_VALUE )
2931 @ ApiOperation (value = "后端主页框架" , notes = "后端主页框架" )
30- public String endMain (@ ApiParam (hidden = true ) ModelMap map
31- , @ ApiParam (hidden = true ) ShiroHttpServletRequest request ) {
32+ public String endMain (@ ApiParam (hidden = true ) ModelMap map , @ ApiParam (hidden = true ) ShiroHttpServletRequest request ) {
3233 Object user = request .getSession ().getAttribute ("userInfo" );
3334 map .put ("user" , user );
3435 return "end/index" ;
Original file line number Diff line number Diff line change 1313
1414/**
1515 * Created by pc on 2017/8/11.
16+ * Spring的注解形式:@Repository、@Service、@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean。
1617 */
1718@ Repository ("userDao" )
1819public interface UserDao extends BaseMapper <User > {
Original file line number Diff line number Diff line change 11package acheng1314 .cn .shiro ;
22
3- import acheng1314 .cn .service .UserServiceImpl ;
43import org .apache .shiro .authc .AuthenticationInfo ;
54import org .apache .shiro .authc .AuthenticationToken ;
65import org .apache .shiro .authc .credential .SimpleCredentialsMatcher ;
7- import org .springframework .beans .factory .annotation .Autowired ;
86
97/**
108 * Created by cheng on 17/5/16.
@@ -24,9 +22,10 @@ public class MyCredentialsMatcher extends SimpleCredentialsMatcher {
2422 @ Override
2523 public boolean doCredentialsMatch (AuthenticationToken token , AuthenticationInfo info ) {
2624
25+
2726// try {
2827//
29- // //从ShiroRealm传递过来的UsernamePasswordToken
28+ //从ShiroRealm传递过来的UsernamePasswordToken
3029// UsernamePasswordToken user = (UsernamePasswordToken) token;
3130// String userPass = new String(user.getPassword());
3231// userPass = userPass.toLowerCase(); //将大写md5转换为小写md5
Original file line number Diff line number Diff line change 55
66/**
77 * Created by cheng on 17/5/18.
8+ * 权限列表中心
89 */
910public class PermissionUtil {
10- private final static String POST_CENTER = "文章中心"
11- , MSG_CENTER = "留言管理"
12- , MEDIA_CENTER = "多媒体管理"
13- , API_CENTER = "API系统"
14- , USER_CENTER = "用户管理"
15- , WEXIN_CENTER = "微信管理"
16- , SYSTEM_CENTER = "服务器中心" ;
11+ private final static String POST_CENTER = "文章中心" ,
12+ MSG_CENTER = "留言管理" ,
13+ MEDIA_CENTER = "多媒体管理" ,
14+ API_CENTER = "API系统" ,
15+ USER_CENTER = "用户管理" ,
16+ WEXIN_CENTER = "微信管理" ,
17+ DATA_CENTER = "数据管理" ,
18+ SYSTEM_CENTER = "服务器中心" ;
1719
1820 /**
1921 * 获取管理员权限
20- * @return 返回管理员权限集合
22+ *
23+ * @return 返回管理员权限集合
2124 */
22- public static List <String > getAdminPer (){
25+ public static List <String > getAdminPer () {
2326 List <String > list = new ArrayList <>();
2427 list .add (POST_CENTER );
2528 list .add (MSG_CENTER );
2629 list .add (MEDIA_CENTER );
2730 list .add (API_CENTER );
2831 list .add (USER_CENTER );
2932 list .add (WEXIN_CENTER );
33+ list .add (DATA_CENTER );
3034 list .add (SYSTEM_CENTER );
3135 return list ;
3236 }
3337
34- public static List <String > getOtherPer (){
38+ /**
39+ * 获取其他管理员的权限
40+ * @return
41+ */
42+ public static List <String > getOtherPer () {
3543 List <String > list = new ArrayList <>();
3644 list .add (POST_CENTER );
3745 list .add (MSG_CENTER );
3846 list .add (MEDIA_CENTER );
47+ list .add (DATA_CENTER );
3948 return list ;
4049 }
4150}
Original file line number Diff line number Diff line change @@ -25,6 +25,7 @@ public class ShiroRealm extends AuthorizingRealm {
2525 */
2626 @ Override
2727 protected AuthenticationInfo doGetAuthenticationInfo (AuthenticationToken token ) throws AuthenticationException {
28+ //使用用户的登陆信息创建令牌
2829 UsernamePasswordToken user = (UsernamePasswordToken ) token ;
2930 LogE .getInstance (ShiroRealm .class ).logOutLittle ("开始登录====>\n 用户为:" + user .getUsername ());
3031
Original file line number Diff line number Diff line change 55import java .util .Map ;
66import java .util .UUID ;
77
8+ /**
9+ * 加密解密工具类
10+ * 功能描述:
11+ * 加密常用类
12+ */
813public class EncryptUtils extends HashKit {
914
15+
16+ /**
17+ * 数据库的密码通过散列获取,如下,算法为:md5,
18+ 盐为一个随机数字,散列迭代次数为3次,
19+ 最终将salt与散列后的密码保存到数据库内,
20+ 第二次登录时将登录的令牌再进行同样的运算后再与数据库的做对比。
21+ */
22+
23+ //定义盐: 随机的一位数字
1024 public static String salt () {
1125 int random = (int ) (10 + (Math .random () * 10 ));
1226 return UUID .randomUUID ().toString ().replace ("-" , "" ).substring (random );// 随机长度
You can’t perform that action at this time.
0 commit comments