最新更新 https://gitee.com/shafish/ToolMan/blob/master/manjaro_i3wm/i3-user-guide.md(未整理版)

看了下记录,shafish在2018-06-18年就安装使用过manjaro i3wm一段时间,好像是由于某种无法解决的原因(具体也忘了)用回了window.but,现在又满血回来liao,还是manjaro还是i3wm.

在此仅记录过程遇到的问题,以供未来考古.

先来一张原汁原味的manjaro桌面图

- 阅读剩余部分 -

使用Java配置类配置SpringSecurity

终于要开始配置SpringSecurityla,鸡冻鸡冻!!

第一步、先找个漂亮的登录页面修改修改

比如我找的这个:https://down.shafish.cn/web/disanfanglogin.zip,把它解压放在你的项目中,顺便把index.html改为login.html

厚颜无耻
厚颜无耻+

  1. 配置login.html form标签内容

    // 加上action和method
    <form class="login100-form validate-form" action="/doLogin" method="post">
    ...
    </form>
  2. 修改用户名和密码的input.name属性值为username password

    // username和password
    <input class="input100" type="text" name="username" placeholder="请输入用户名" autocomplete="off">
    <input class="input100" type="password" name="password" placeholder="请输入密码">
  3. 登录按钮加上提交type

    // submit
    <button class="login100-form-btn" type="submit">登 录</button>

    OK

- 阅读剩余部分 -

先跑一个简单的demo,初步认识SpringSecurity

第一步、新建SpringBoot工程(伪第一步)

启动项目时选择导入springwebspringsecurity这两个依赖,在项目启动成功后,SpringSecurity因为SpringBoot的自动配置,已经为项目的所有接口都提供了访问保护。

第二步、写个controller接口测试url是否被保护

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello() {
        return "hello";
    }
}

第三步、启动项目,测试接口

  1. 启动项目时,可以看到控制台输出了默认的登录密码,其实就是一串uuid
  2. 浏览器访问测试接口http://localhost:8080/hello
    你可以明确地看到url自动跳转到了http://localhost:8080/login并提示输入账号密码。
  3. 输入账号:user
  4. 密码:控制台输出的uuid


    就可以正常显示接口的返回值 -> hello

- 阅读剩余部分 -

一、SpringSecurity是什么、可以做什么

SpringSecurity是一个可以提供认证、授权的服务框架,是Spring家族的一员,为Spring框架提供了给力的安全支持。

那问题来了,什么是认证,又什么是授权。
  • 简单来讲认证就是检查你的登录信息,比如说使用 用户名+密码 登录一个系统,如果账号密码匹配成功,就可以理解为认证成功;
  • 授权就规定了这个登录系统的用户可以做些什么事情。比如说小于在百度帖吧注册了个号,想把那个sb楼主写的垃圾文章删掉,这如果真能删掉,那现在的百度贴吧不是没落而是应该直接被人道毁灭了。这就是授权,什么人能做什么事,什么人不能做什么事。

在SpringBoot出现之前,大部分开发者使用的安全框架应该是ApacheShrio。没有SpringBoot自动配置的SpringSecurity,学习成本相对高点,配置也相对复杂,属于重量级的安全框架,让很多伪开发者望而却步,而SpringBoot出现后,上面那些问题得到了一定程度的缓解,所以SpringSecurity就跟着火了起来。(有多火?入夏了,能不火吗,而且还很热)

为什么说SpringSecurity是重量级的安全框架,因为她对认证授权安全等方面提供了巴适的支持。比如说Oauth2、单点登录、匿名登录、对特定接口授权、对特定对象授权、抵御XSS/CSRF攻击等等。总有那么几点合你心水。

等等,你是不是漏了什么东西,为什么是为Spring框架提供支持呢?emmmm,你一个做Java开发的,能不用Spring吗??

    一眼之前写的东西,施事不懂装懂,很多都是为了水而水,已经删掉回炉,认值重造。以后的技术文章都尽量控制文字在一千字内,不要再水文了,也不要再肤浅地用膝盖复制粘贴了,虽然说人类总是在犯同样的错误,但毕竟连接人类的不是卡拉,一个人总得在某方面投入精力,投入时间,知道点什么,学会点什么。

    之前看到一篇文章,是关于知识寄养的,大概内容是:遇到一个问题,你只会上网搜别人的文章来解决,这个答案可能是二手的、可能是三手的,但经常遇到的是经过几十手的复制粘贴,你解决问题的方式永远都需要寄生在第一个吃西红柿的人身上。没有脸红,有点迷茫,是没有多余的精力吗,还是单纯的懒,抑或单纯的脑子不灵活,我感觉我是后面两者。

    flag已立,只要学不死、就往死里学