oauth2的简单实现

本文总结了作者学习OAuth2两周多的时间,主要介绍了OAuth2的四种模式:简单模式、客户端模式、密码模式和授权码模式。接着详细阐述了在Java环境下实现OAuth2的具体步骤,包括认证中心和客户端的实现。在实现过程中,遇到了RedisTokenStore的问题,并给出了解决方案。最后,作者分享了在实践中不断调试和学习的经验,虽然内容可能较为基础,但希望能为初学者提供帮助。
摘要由CSDN通过智能技术生成

Oauth2的学习总结

  这段时间领导叫我学习oauth2准备一下,以后上spring cloud的时候可以上手就使用。陆陆续续学习了两周,三周还是更多,发现oauth2还是很复杂的。这篇文章就是想总结一下这段时间学习oauth2的东西,希望可以给刚学习oauth2的做一些铺垫,有些地方不对的还希望指正。

1.oauth2的简单介绍

  oauth2总体我的理解是做认证授权的,最常见的就是第三方认证(QQ,微信,淘宝等),还有就是微服务的时候做认证使用。具体的概念,可以详见oauth2的解释,详细的oauth2的原理可以看大佬的博客

2.oauth2的四种模式

1.简单模式(implicit)
 一般不使用,完全不可信
2.客户端模式(client credentials)
 客户端是可信的,只要传入一些参数就能获取access token
3.密码模式(authorizaiton code)
 需要提供用户名和密码去实现获取access token
4.code模式(password)
 完整的模式,先获取code,然后通过code去获取access token

3.具体实现
3.1 本文实现的逻辑
客户端(浏览器) 认证客户端 资源服务器 1.获取access token 2.发送消息(带access token的head头) 3.认证access token 4.验证token的权限,获取内容 客户端(浏览器) 认证客户端 资源服务器
3.2 代码逻辑的实现
3.2.1 认证中心实现

  AuthorizationServerConfigurerAdapter这个是用来设定认证中心相关配置

@Configuration
@EnableAuthorizationServer
public class OAuth2Configure extends AuthorizationServerConfigurerAdapter {
    @Autowired
    @Qualifier("authenticationManagerBean")
    private AuthenticationManager authenticationManager;

    @Autowired
    private RedisConnectionFactory redisConnectionFactory;

    @Autowired
    private MyUserDetailsService myUserDetailsService;

    @Bean
    public MyRedisTokenStore tokenStore(){
        return new MyRedisTokenStore(redisConnectionFactory);
    }

    //client模式的设定
    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception{
        clients.inMemory()
                .withClient("user-service")
                .secre
  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值