SpringSecurity学习笔记之 入门 十 (oauth2.0整合 密码模式)

密码模式

在配置类

认证服务器配置中配置
重写参数为AuthorizationServerEndpointsConfigurer的方法

@Override
//授权服务器端点配置
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
    }

在其中注入用户详情类(继承UserDetailService的类);
再注入授权管理器->这个需要我们在配置权限管理的类(继承WebSecurityConfigurerAdpter的类)那里进行重写authenticationManagerBean方法
将这个bean返回给spring就可以了;

@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
    return super.authenticationManagerBean();
}

完成后继续回到刚才的位置将这个bean注入进去交给认证管理器;

@Autowired
private UserDetailsService userDetailsService;
@Autowired
private AuthenticationManager authenticationManager;
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
    endpoints
            //自定义登录逻辑,我们把之前自定义的登录逻辑类注进来填进去(实现UserDetailService的类)
            .userDetailsService(userDetailsService)
            //配置授权管理器
            .authenticationManager(authenticationManager);
}

然后我们回到配置每个商家账号信息配置那里给他加上一个密码模式,【可以直接存在数据库里】到时候直接加载进来了

icdsb.withClient(partner.getAppId())
        .secret(partner.getAppSecret())
        .authorizedGrantTypes(partner.getAuthorizedGrantTypes())
//.authorizedGrantTypes("authorization_code","password")  <=x-ray

然后请求方式也要变更

改为直接使用用户的账户密码进行获取token,
省去了用授权码部分;原来的请求授权码部分取消,直接用用户名密码取得他的token;
替代了原先的appid以及secret,模式为密码模式

总结:
总之就是原来要先获取授权码,然后携带商家登录参数和用户授权码获取token;

密码模式改成了直接携带商家登录参数,然后在表单里加上用户的账户密码,进行获取token;取消了原来使用授权码时appid的填写(其实我本来没填写的,我寻思商户登录不就有了吗,而且也成功获取到了,真是奇怪);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值