1. 1 不可撤销
  2. 2 小年兽 程嘉敏
  3. 3 手放开 李圣杰
  4. 4 迷人的危险3(翻自 dance flow) FAFA
  5. 5 山楂树之恋 程佳佳
  6. 6 summertime cinnamons / evening cinema
  7. 7 不谓侠(Cover 萧忆情Alex) CRITTY
  8. 8 神武醉相思(翻自 优我女团) 双笙
  9. 9 空山新雨后 音阙诗听 / 锦零
  10. 10 Wonderful U (Demo Version) AGA
  11. 11 广寒宫 丸子呦
  12. 12 陪我看日出 回音哥
  13. 13 春夏秋冬的你 王宇良
  14. 14 世界が终わるまでは… WANDS
  15. 15 多想在平庸的生活拥抱你 隔壁老樊
  16. 16 千禧 徐秉龙
  17. 17 我的一个道姑朋友 双笙
  18. 18 大鱼  (Cover 周深) 双笙
  19. 19 霜雪千年(Cover 洛天依 / 乐正绫) 双笙 / 封茗囧菌
  20. 20 云烟成雨(翻自 房东的猫) 周玥
  21. 21 情深深雨濛濛 杨胖雨
  22. 22 Five Hundred Miles Justin Timberlake / Carey Mulligan / Stark Sands
  23. 23 斑马斑马 房东的猫
  24. 24 See You Again Wiz Khalifa / Charlie Puth
  25. 25 Faded Alan Walker / Iselin Solheim
  26. 26 Natural J.Fla
  27. 27 New Soul Vox Angeli
  28. 28 ハレハレヤ(朗朗晴天)(翻自 v flower) 猫瑾
  29. 29 像鱼 王贰浪
  30. 30 Bye Bye Bye Lovestoned
  31. 31 Blame You 眠 / Lopu$
  32. 32 Believer J.Fla
  33. 33 书信 戴羽彤
  34. 34 柴 鱼 の c a l l i n g【已售】 幸子小姐拜托了
  35. 35 夜空中最亮的星(翻自 逃跑计划) 戴羽彤
  36. 36 慢慢喜欢你 LIve版(翻自 莫文蔚) 戴羽彤
  37. 37 病变(翻自 cubi) 戴羽彤
  38. 38 那女孩对我说 (完整版) Uu
  39. 39 绿色 陈雪凝
  40. 40 月牙湾 LIve版(翻自 F.I.R.) 戴羽彤
夜空中最亮的星(翻自 逃跑计划) - 戴羽彤
00:00 / 04:10

夜空中最亮的星 能否听清

那仰望的人 心底的孤独和叹息

夜空中最亮的星 能否记起

那曾与我同行 消失在风里的身影

我祈祷拥有一颗透明的心灵

和会流泪的眼睛

给我再去相信的勇气

越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请指引我靠近你

夜空中最亮的星 是否知道

那曾与我同行的身影 如今在哪里

夜空中最亮的星 是否在意

是等太阳先升起 还是意外先来临

我宁愿所有痛苦都留在心底

也不愿忘记你的眼睛

哦 给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行 哒~

我祈祷拥有一颗透明的心灵

和会流泪的眼睛 哦

给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行

spring-boot-security组件总结补充

前言

spring-boot-security相关知识暂时告一段落,今天我们抽点时间做一次总结,也算是对最近几天知识的回顾。

Security

补充内容

我们先说补充内容,在我们之前分享security组件有两个知识点被我遗漏了,然后今天总结的时候才发现,所以今天我们在这里补充下。这两个知识点都是和配置类相关的,一个是登出的相关配置,一个是token的相关配置。

退出登录设置

先看登出配置,登出配置就是设置用户退出登录相关页面、接口地址、处理器等,和登录设置类似:

// 获取登出设置对象 
.and().logout()
    // 设置登出地址
     .logoutUrl("/logout")
    // 设置登出成功后跳转地址
     .logoutSuccessUrl("/logoutPage")
    // 设置退出成功后处理器
     .logoutSuccessHandler(syskeLogoutSuccessHandler)

这里简单解释下:

  • logoutUrl设置的是退出登录的触发地址,这个地址可以随便指定,哪怕资源不存在也不影响;
  • logoutSuccessUrl设置的是退出登录成功后跳转的页面,如果你需要退出登录成功后返回一个页面,那推荐你用这种方式,这时候返回的就是你指定的页面
  • logoutSuccessHandler设置退出登录处理器,如果你需要返回json之类的数据,那可以用这种方式

但是logoutSuccessUrllogoutSuccessHandler只能设置一个,而且后面的会把前面的设置的覆盖掉,所以你需要根据自己的需要选择。

下面是我写的退出登录成功处理器的实现:

@Component
public class SyskeLogoutSuccessHandler implements LogoutSuccessHandler {
    @Override
    public void onLogoutSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {
        // 登出成功后的相关操作
        System.out.println("退出登录成功");
        httpServletResponse.setContentType("application/json;charset=UTF-8");
        HashMap<String, Object> result = Maps.newHashMap();
        result.put("message", "退出登录成功");
        result.put("success", Boolean.TRUE);
        result.put("code", 2000);
        httpServletResponse.getWriter().write(JSON.toJSONString(result));
    }
}

说明:昨天我们说登录接口要放一个空接口,但是搞清楚logoutUrl的地址之后,我想loginProcessingUrl应该也是这也,所以又去试了下,发现确实一样,登录接口是可以随意指定的,看来昨天可能是配置的问题。

token相关配置

token的相关设置今天又实际搞了下,暂时还没理清楚实际应用场景,而且设置的参数也没有任何效果,所以今天就先不分享,后续搞清楚了再来分享。

内容总结

和上次线程池总结一样,我们先贴一张脑图(公众号回复【spring-boot-security】获取脑图源文件),今天的总结内容有就是围绕脑图展开。

security组件的核心内容基本上就是我们这几天分享的知识点,主要以security配置为主,包括配置组件的自定义、常用的配置项等,另外security还对第三方安全框架做了支持,比如oauth2openidsaml2,好像目前就支持这三种,不过这三种已经算是比较流行的安全框架了。

以下就是我们security相关的知识点,获取脑图公众号回复【spring-boot-security】获取脑图源文件即可。

配置类
  • 常用配置方法
    • configure(AuthenticationManagerBuilder auth):配置登录认证处理
    • configure(HttpSecurity http):配置资源权限、登录页面等
    • configure(WebSecurity web):WebSecurityConfigurerAdapter
资源鉴权设置
  • authorizeRequests:获取资源权限设置对象
  • antMatchers:设定访问资源表达式
  • hasAnyRole:配置资源的访问角色
  • hasAnyAuthority:配置资源的访问权限
  • anyRequest:除配置权限资源外的其他资源
  • permitAll:设定指定资源的访问权限为无条件访问
  • anonymous:设定允许匿名访问
登录配置
  • formLogin:获取登录页设置对象
  • loginPage:设置登录页
  • loginProcessingUrl:设置登录处理接口
  • 登录成功
    • successHandler:设置登录成功处理器
    • successForwardUrl:设置登录成功跳转页面
    • defaultSuccessUrl:设置登录成功默认页面
  • 登录失败
    • failureForwardUrl:设置登录失败跳转页面
    • failureHandler:设置登录失败处理器
登出配置
  • logout:获取登出设置对象
  • logoutUrl:设置登出接口地址
  • logoutSuccessHandler:设置登出成功处理器
  • logoutRequestMatcher:设置登出匹配地址(访问设定的地址,就会触犯登出操作)
  • addLogoutHandler:添加登出处理器
  • defaultLogoutSuccessHandlerFor:设定登出成功处理器、登出匹配地址
  • deleteCookies:设定是否删除cookie
token相关配置
  • tokenValiditySeconds:设置token过期时间
  • tokenRepository:设置token处理器(生成、删除、更新)
其他配置
  • userDetailsService:设定用户数据获取服务
  • httpBasic:启用http基本校验
  • csrf:设置跨越访问校验
组件依赖
  • spring-boot-starter-security
扩展
  • oauth2
  • openid
  • saml2
组件
  • 登录认证处理器:AuthenticationProvider
  • 登录结果处理器:
    • AuthenticationFailureHandler
    • AuthenticationSuccessHandler
  • 登出处理器
    • LogoutSuccessHandler
    • LogoutHandler
  • token组件:PersistentTokenRepository
  • 用户信息组件:UserDetailsService
  • 密码加密器:PasswordEncoder

前期知识点回顾

总结

截止到今天,security相关的基础知识我们就算讲完了,虽然好多知识也没讲(第三方安全框架整合、token等),但是也算是把security的一些基础知识讲的差不多了,而且在一些细节问题的探讨和研究上(比如登录、登出等配置),我应该讲的算比较细了,当然从我的角度来说,经过这几天的梳理和摸索,我基本上把securtiy的整个使用流程搞清楚了(说到这里,我发现我忘记画流程图了),至少在security使用方面不会有太大问题,总之我是有收获的。

最后我希望这几天的内容能够真正帮助到大家,周末愉快呀!

posted @ 2021-07-26 14:31  云中志  阅读(41)  评论(0编辑  收藏  举报