oauth/authorize 返回403

学习Oauth2授权码授权时遇到访问 oauth/authorize 返回403。
查源码发现是在AuthorizationEndpoint类中的authorize的方法里抛出了异常:
User must be authenticated with Spring Security before authorization can be completed.
在这里插入图片描述

抛出异常的原因是principal == null,是没有配置登录方式导致的。
解决方法:修改继承了WebSecurityConfigurerAdapter的配置类中的protected void configure(HttpSecurity http)方法,配置登录方式

  1. 使用fromlogin登录
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.formLogin().and().authorizeRequests()
                .antMatchers("/**")
                .permitAll();
    }
  1. 使用基础的对话框登录
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.httpBasic().and().authorizeRequests()
                .antMatchers("/**")
                .permitAll();
    }
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
/oauth/authorize接口是OAuth2.0授权协议中的授权请求端点,用于请求用户授权,获取授权码。该接口需要客户端向授权服务器发送授权请求,请求所需的权限范围和回调地址,授权服务器验证用户身份后,会让用户授权请求,并将授权码返回给客户端。 具体流程如下: 1. 客户端发起授权请求,向授权服务器发送包含以下参数的请求: - response_type:必选参数,表示授权类型,该值固定为"code"; - client_id:必选参数,表示客户端ID,由授权服务器分配; - redirect_uri:必选参数,表示重定向URI,用于接收授权码; - scope:可选参数,表示权限范围,用逗号分隔多个权限; - state:可选参数,表示客户端的当前状态,授权服务器会原样返回该值。 2. 授权服务器验证用户身份,如果用户未登录,则要求用户先登录,然后显示授权页面,让用户选择是否授权客户端所请求的权限。 3. 用户选择是否授权,如果同意授权,则授权服务器重定向到客户端的重定向URI,并将授权码作为查询参数附加在URI后面;如果不同意授权,则授权服务器重定向到客户端的重定向URI,并将错误信息作为查询参数附加在URI后面。 4. 客户端收到授权码后,使用该码向授权服务器请求访问令牌。 该接口是OAuth2.0授权协议中的核心接口之一,用于实现授权码授权模式和隐式授权模式。授权码授权模式是OAuth2.0协议中最安全的授权模式,适用于客户端能够保护客户端密钥的情况下;隐式授权模式则适用于客户端不能保护客户端密钥的情况下,但相对不如授权码模式安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值