SpringBoot+SpringSecurity

整合了SpringSecurity权限框架

@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Autowiredprivate UserDetailServiceImpl userDetailService;//授权@Overrideprotected void configure(HttpSecurity http) throws Exception {//登录页放开校验http.authorizeRequests().antMatchers("/login.html", "/login").permitAll().anyRequest().authenticated();//自动跳转登录页//定义了一个login请求用于跳转登陆页面http.formLogin().loginPage("/login").loginProcessingUrl("/login").defaultSuccessUrl("/success");//关闭csrf校验http.csrf().disable();}//认证@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {//认证方法auth.userDetailsService(userDetailService).passwordEncoder(passwordEncoder());}//自定义加密方式@Beanpublic PasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();}}// auth.userDetailsService()
// 这个方法需要一个UserDetailsService接口的实现类,我们需要创建一个类来实现这个接口,
//并且重写loadUserByUsername方法,写入我们自己想要实现的逻辑,然后将该实现类放入ioc,在这个auth.userDetailsService()地方传入该实现类的实例对象
//使用注解将该对象放入容器中
@Component
public class UserDetailServiceImpl implements UserDetailsService {@Autowiredprivate PasswordEncoder encoder;@Autowiredprivate SystemService systemService;@Overridepublic UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {User currUser =  systemService.getUserInfo(s);if (currUser == null){throw new UsernameNotFoundException("用户不存在");}//加密过程在此处体现return new org.springframework.security.core.userdetails.User(currUser.getUserName(), encoder.encode(currUser.getPassword()),new ArrayList<>());}
}

用于跳转自定义登录页的请求

@RequestMapping(value = "/login", method = RequestMethod.GET)public String login() {try {return "login";} catch (Exception e) {e.printStackTrace();return e.getMessage();}}

前台页面流转暂时使用的是thymeleaf,仅用于测试SpringSecurity有效性,之后会改成Vue前后台分离项目

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org/" lang="en">
<head><meta charset="UTF-8"><title>用户登录</title>
</head>
<body>
<h1>用户登录</h1>
<form th:action="@{/login}" method="post">用户名:<input type="text" name="username"> <br>密码:<input type="text" name="password"><br><input type="submit" value="登录">
</form>
</body>
</html>

现在访问未放开的接口,security都会自动跳转到我们自定义的登陆页面

登陆成功后,才可访问其他页面和请求
返回json

跳转页面

但使龙城飞将在,不教胡马度阴山相关推荐

  1. 非常精美的唐诗,无与伦比哦遥知兄弟登高处,遍插茱萸少一人。秦时明月汉时关,万里长征人未还。但使龙城飞将在,不教胡马度阴山。春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。君自故乡来,应知故乡事。来日绮

    高,哥舒夜带刀. 至今窥牧马,不敢过临洮. 黑夜里北斗七星挂得高高: 哥舒翰勇猛守边夜带宝刀. 吐蕃族至今牧马只能远望: 他们再不敢南来越过临洮. 山中相送罢,日暮掩柴扉. 春草明年绿,王孙归不归. ...

  2. python爬虫中三种数据解析方式

    一.正解解析 常用正则表达式: 单字符: .: 除换行以外所有字符 []:[aoe] [a-w]匹配集合中任意一个字符 \d:数字 [0-9] \D: 非数字 \w :数字.字母.下划线.中文 \W ...

  3. Python spiders基础学习笔记

    爬虫简介 什么是爬虫: 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程. 爬虫的价值: 实际应用 就业 爬虫究竟是合法还是违法的? 在法律中是不被禁止 具有违法风险 善意爬虫 恶意爬虫 ...

  4. 一个关于LSTM生成歌词的练习

    说明 这是一个个人练习笔记,使用Python语言,Keras搭建神经网络 数据使用的是王力宏的歌词,包含91首歌,共2列属性:歌曲名(Title),歌词(Lyrics)(来源:网易云音乐) 导入各种包 ...

  5. 王力宏 谭维维-缘分一道桥 【超品质MP3】

    缘分一道桥 - 王力宏/谭维维 歌词 词:方文山 曲:王力宏 男: 万里长征人未还 但使龙城飞将在 不教胡马度阴山 女: 狼烟千里乱葬岗 乱世孤魂无人访 无言苍天笔墨寒 笔刀春秋以血偿 男: 谈爱恨 ...

  6. Python网络爬虫-xpath模块

    一.正解解析 单字符:. : 除换行以外所有字符[] :[aoe] [a-w] 匹配集合中任意一个字符\d :数字 [0-9]\D : 非数字\w :数字.字母.下划线.中文\W : 非\w\s :所 ...

  7. 多测师_Python(open 文件)

    一.open 文件 1.open('file','mode')打开一个文件 file 要打开的文件名,需加路径(除非是在当前目录) mode 文件打开的模式 需要手动关闭 close 2.with o ...

  8. UNITY HTTP GET 人机对诗APP (流星程序集之十七)

    小孩喜欢玩手机,又是学诗的年纪,我想了一下,把2者结合起来吧,推出一个APP,可以通过这个APP对诗,你来我往地加深诗词在诗词大脑中的印象. 2019年2月,使用UNITY2D开发的安卓版应用程序,& ...

  9. BeautifulSoup模块学习文档

    一.BeautifulSoup简介 1.BeautifulSoup模块 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档 ...

最新文章

  1. 测试逐飞的MM32F3277 MicroPython开发板的基本功能
  2. TensorFlow 运行官方文档中文版 简单例子出现:IndentationError:unexpected indent
  3. NHibernate之Could not initialize proxy - no Session Bug
  4. 新闻资讯APP开发流程(八)-- ContentView.js
  5. 树莓派python教程_两个简易的树莓派初学者Python程序
  6. 养成这6个编程好习惯,助你减少90%BUG
  7. python flask上传文件_Python-Flask-文件上传
  8. Win32编程之基于MATLAB与VC交互的多项式回归
  9. java的文本框如何回车键触发按钮_java回车触发按钮的代码
  10. py 的 第 30 天
  11. 如何避免 Go 命令行执行产生“孤儿”进程?
  12. 武器级工具包 Immunity Canvas 7.26 泄露(个人百度网盘)
  13. 使用fstream在C++工程中读取文件到二维数组
  14. eclipse汉化方法
  15. 手把手带撸Junior AlphaGo算法「AI工程论」
  16. imagej得到灰度图数据_教你用免费软件Image J对WB结果进行灰度分析!
  17. 2018年11月酷云大数据月度报告
  18. Java集合,泛型,枚举详解
  19. 一个算法模型搞定千万种场景,人工智能领域出现一匹黑马
  20. Android Platform 3.0 SDK和Eclipse ADT安装记录三

热门文章

  1. python 凸多边形面积
  2. BZOJ3677: [Apio2014]连珠线
  3. 前端图像处理之马赛克
  4. 想要用Python写爬虫但是BeautifulSoup库出锅肿么办?
  5. 百度云主机BCC挂载云盘CDS
  6. [含论文+源码等]基于HTML5,DIV CSS实现的宠物狗个性化服务网站前端(静态网页毕业设计)web前端毕设
  7. 上海车艺尚教你如何DIY原厂8.8寸大屏幕----宝马车友必看
  8. 22、p2p信贷术语
  9. 基于Python对Lending Club信贷业务数的分析
  10. Pairs(暴力,超详细简单)