互联网安全下的SpringSecurity之初体验
背景介绍
作为千禧年一代,我们很多人生活在这个互联网的时代,享受着互联网给我们带来的惊喜,却经常忽略它给我们带来的一些不好的东西。
人们常说任何事物的发展都是一把"双刃剑",给我们带来便利的同时也会带来一些麻烦;互联网技术也是这样,它改变了我们的生活方式,比如:以微信为代表的社交方式,以支付宝、微信为代表的的支付方式、以滴滴为代表的出行方式等,但同时它也让我们的信息更加容易获取和不安全,如果有一天微信和支付宝不知道哪根神经搭错了,觉得钱不够花,俩人一合计,把你的购物和社交的信息都放到网上卖了,估计你也没办法,当然这种假设几乎是不太可能发生的。但是互联网的发展确实是存在着一些比较容易被人们忽略的安全问题。
当年的3Q大战,曾经坊间"删库跑路"的传说,竟然成了现实;我们暂且不去讨论这些事情本身,这背后都传达了一个信息,就是安全很重要;如果你要是问我什么是互联网公司(所有公司)中最重要的事情,那一定是安全!安全!安全!重要的事情说三遍。
作为一名程序猿,在Web应用开发中,安全永远是产品的最基础需求,也是最重的技术,想象一下,你们熬夜通宵吃泡面花了几个月做了一狂转炫酷吊炸天的网站,结果被一个刚入行的毛头小伙儿一下高挂了,以后还有何颜面在这一行混。
在Web开发过程中有一些比较常见的黑客攻击方式,比如:XSS(跨站脚本攻击)、CSRF(跨站请求伪造攻击)、SQL注入、命令行注入、DDoS攻击、DNS劫持等,据史料记载,程序猿这个群体都有一种特质是:在Get到一个新技术的时候一定会去骚扰一下别人的网站去证明自己技术有多牛逼(我也这么干过,邪恶脸)。
没有攻击过别人的网站的黑客,不是好程序猿!
对于Java攻城狮来说,Web应用的安全的重要性自然是不言而喻的,那在JavaWeb开发领域也有很多解决安全性的框架,常用的有Spring SecurityShiro
今天先来了解下SpringSecurity这个安全管理框架
什么是SpringSecurity
SpringSecurity是一个基于Spring的企业应用系统安全访问控制解决方案的安全框架,从名字我们也可以看出来它和Spring有着千丝万缕的关系,所以它可以和Spring进行无缝集成,对于Web应用的安全性,如用户认证(是否是合法用户)和用户授权(是否具有某种权限)SpringSecurity都提供了很好支持,并且支持自定义,给开发人员提供了更大的灵活性。今天咱们就来学习一下使用SpringBoot 集成SpringSecurity,我们都知道SpringBoot也是基于Spring的,所以SpringBoot对于SpringSecurity也提供很好的支持,通常情况下,Spring生态内的技术在使用的时候都是比较容易上手的,接下里就让我们实战为先吧!
Spring Boot 集成
SpringSecurity
创建SpringBoot项目工程
首先,使用SpringInitializr创建SpringBoot 基础工程,然后引入web依赖。接着我们就需要引入SpringSecurity了,引入SpringSecurity依赖有两种方式:在工程的pom文件中加入Spring Security依赖。org.springframework.bootspring-boot-starter-security使用Spring Initializr在创建项目的时直接勾选Spring Security,项目建成后会自动在pom文件加入Spring Security的依赖。
添加SpringSecurity配置信息
在application.properties中添加SpringSecurity的相关配置信息,这里主要配置登录用户名和密码。
# Spring Security配置
# 配置登录用户的名
spring.security.user.name=admin
# 登录密码
spring.security.user.password=admin
SpringSecurity初体验
创建一个SecurityController,编写测试方法,然后直接启动项目,通过浏览器访问http://localhost:8080/index首页资源。
/**
* Security登录验证demo
*/
@RestController
public class SecurityController {
/**
* 首页资源
* @return
*/
@GetMapping("index")
public String index() {
return "登录成功!!!--欢迎来到Spring Security!!!";
}
}
发现页面被重定向到了一个http://localhost:8080/login路径,需要我们登录验证,这个就是Spring Security默认提供的登录页面(其实还提好看的如果不喜欢的话,自己也可以定制);也就是它对所有的资源都做了权限校验,只有合法的用户才可以访问。
然后,输入我们刚才在application.properties配置了登录的用户名和密码,输入之后我们看到了如下:
我们成功的访问到了首页的资源,此时说明我们合法了,以后再也不用担心查水表了,是不是很简单呢?
切实履行职责依法保障农民工合法权益近年来,随着国民经济的快速发展,农业农村农民三农问题日渐突出,如何保障农民工的合法权益成为众所瞩目的热门话题。笔者认为,各级各有关部门要保持定力,坚定做好农民工工作的信心。要完善制
回忆我在农村时的初中时代那个时候的我们用铁桶装菜,用脸盆装馒头,睡大通铺毕业后我一直留在外地,回家的次数很少,回我小时候住过的农村老家的次数更是少的可怜。今年过年再次回到农村老家,经过当年我曾上过的乡镇中
托育和家庭养育,究竟哪种方式好?在国际上,尤其是欧美日本等育儿水平发达的国家,托育机构已经发展成为了社会的基础设施。随着国内新生代父母育儿理念迅速的更新迭代,许多国内一线城市的新手父母在育儿方式选择上,更倾向于将
倡导就地过年,山东这些地方使出大招为鼓励外地员工留鲁过年,山东省就业和农民工工作领导小组办公室近日印发关于做好春节期间农民工服务保障工作的通知,鼓励企业通过留岗红包过年大礼包特殊津贴错峰调休等措施留工稳岗,引导外来
筑牢安全生产最严防线要加大宣传引导力度,善用各类宣传平台,强化安全知识普及,让安全生产意识真正入耳入脑入心。要加大处置力度,切实加强安全隐患排查整治,对因安全责任不落实措施举措不到位导致发生安全生产事
建设美丽乡村享有品质生活党的十九大作出了实施乡村振兴战略建设美丽中国的重大部署。实施农村人居环境整治,建设美丽乡村是美丽中国的重要组成部分,是全面小康在农村的形象表达,是实施乡村振兴战略的重要切入点。树立
丁真热背后的思考这段时间,来自四川省甘孜藏族自治州理塘县的藏族小伙丁真火了,微博关于丁真的热搜不断,人民日报央视新闻等各大重磅官微纷纷下场,在蹭热点的同时更是对丁真感叹赞誉。然而这次事件,除了要关
安全生产与生命同行命停止了就没有再复生的机会。因此,平安是幸福的源泉,而安全则是生命的基点。早在解放初期,毛泽东周恩来等老一辈革命家就提出安全第一的口号。随着改革开放的不断深入,安全生产在社会中起着
放下手机,拥抱世界手机已经成为我们生活中必不可少的一样物品,不可否认手机给我们带来方便,但同时也慢慢的让我们忘记了面对面地交流感情。曾经的我们能围在一起无话不说,不知道从什么时候,难得相聚的时候慢慢
网络诚信建设刻不容缓人无信不立,业无信不兴,国无信不强。诚信作为社会主义核心价值观的重要内容,不仅是中华优秀传统文化的道德精髓,是现代社会运转的重要基石,更应成为网络空间的基本共识。互联网是人类的共同
家庭作业家长该不该插手?近年来,家庭作业变成家长作业的情况时有发生。相较于平常,假期则更容易发生作业需要家长代劳的情况。因为学校布置的,除了常规的课程作业之外,还有其他名目繁多的作业,没有家长参与,学生难