专栏首页软件开发-青出于蓝Springsecurity-oauth2之TokenEndPoint(2)

Springsecurity-oauth2之TokenEndPoint(2)

    这篇是继上一篇之后的。

    当我们访问/oauth/token时,首先会经过BasicAuthenticationFilter,之后才会到TokenEndPoint

                                                                                图1

    org.springframework.security.web.authentication.www.BasicAuthenticationFilter的doFilter调用doFilterInternal,如下List-1所示,会从头部取出Authorization字段,由authenticationManager来处理。

List-1

protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
    boolean debug = this.logger.isDebugEnabled();
    String header = request.getHeader("Authorization");
    if (header != null && header.startsWith("Basic ")) {
        try {
            String[] tokens = this.extractAndDecodeHeader(header, request);

            assert tokens.length == 2;

            String username = tokens[0];
            if (debug) {
                this.logger.debug("Basic Authentication Authorization header found for user '" + username + "'");
            }

            if (this.authenticationIsRequired(username)) {
                UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(username, tokens[1]);
                authRequest.setDetails(this.authenticationDetailsSource.buildDetails(request));
                Authentication authResult = this.authenticationManager.authenticate(authRequest);
                if (debug) {
                    this.logger.debug("Authentication success: " + authResult);
                }

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringFramework之@Configuration/@Import注解如何解析的

        Spring版本是5.0.9.release,Springboot版本是2.0.3.release

    克虏伯
  • sofa-rpc集群容错之Failfast实现

                                                            图1 FailFastCluster的类继承图

    克虏伯
  • SpringFramework之mvc的HandlerMapping

        我们从DispatcherServlet的doDispatch方法说起,如下List-2,getHandler(processedRequest)会调用...

    克虏伯
  • 高可用服务架构设计(12) - 基于request cache请求缓存技术优化批量商品数据查询接口

    3、查找是否开启了request cache,是否有请求缓存,如果有缓存,直接取用缓存,返回结果

    JavaEdge
  • Laravel+Vue 构建支持邮件通知的二级评论系统

    这篇文章严格来讲是将已有的仿简书二级评论系统和 Laravel、Vue 进行结合并改进,例如添加邮件通知,评论定位。前人栽树后人乘凉,评论系统的数据结构和 Vu...

    蓝默空间
  • Django 实现权限分组(权限控制实现 第三方满足不了需求)

    简单、
  • 我来重新学习 javascript 的面向对象(part 4)

    续上一篇,随着业务越来越大,要考虑一些继承的玩意了,大千世界,各种东西我们要认识和甄别是需要靠大智慧去分门别类,生物学中把动植物按界、门、纲、目、科、属、种进行...

    前端正义联盟
  • Canvas 进阶(三)ts + canvas 重写”辨色“小游戏

    之前写过一篇文章 ES6 手写一个“辨色”小游戏, 感觉好玩挺不错。岂料评论区大神频出,其中有人指出,打开控制台,输入以下代码:

    小皮咖
  • 特斯拉Model X撞高速中央隔离带起火,司机受伤身亡

    美国太平洋时间周五早晨,一辆特斯拉Model X在山景城附近的US-101公路上发生事故起火,司机受伤医治无效死亡。

    量子位
  • 在和恒大决裂后,FF将获区块链公司投资

    此前,有消息人士称,贾跃亭接触的新融资方包括红杉资本和某中东基金等,但具体的洽谈似乎并不是很顺利。

    镁客网

扫码关注云+社区

领取腾讯云代金券