SpringBoot2.0 + Oauth2 实现RESTful API身份验证

本文介绍了如何在SpringBoot2.0中结合Oauth2实现RESTful API的身份验证。通过启用AuthorizationServer并配置客户端信息、令牌管理和授权类型,详细阐述了授权服务的配置过程。同时,提到了密码检验器的设置、UserDetailsService的自定义以及如何处理token的刷新。最后,文章还讨论了客户端服务的配置,包括允许所有连接访问及添加自定义拦截器进行token验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

REST全称是Representational State Transfer; REST指的是一组架构约束条件和原则。有兴趣了解的朋友参考RESTful 架构详解;

OAuth2

10879157-7b3ecf2c443fcd2a.png
网页翻译后截图

配置授权服务oauth

@EnableAuthorizationServer: 用于激活OAuth 2.0授权服务器。
主要配置: 客户端信息, 管理令牌, 授权类型。
实现接口: AuthorizationServerConfigurer。
或者继承AuthorizationServerConfigurerAdapter。
其实查看AuthorizationServerConfigurerAdapter发现其本身就实现了AuthorizationServerConfigurer。

void configure(AuthorizationServerSecurityConfigurer security) throws Exception;

void configure(ClientDetailsServiceConfigurer clients) throws Exception;

void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception;  
   

具体配置例子:

/**
 * @Date 2019年5月21日
 * @Sgin AuthorizationServerConfig--认证服务核心配置
 * @Author Bertram.Wang
 */
@Configuration
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {

    @Resource(name = "dsOauth")
    DataSource dsOauth;
    @Autowired
    RedisConnectionFactory connectionFactory;
    @Autowired
    MyUserDetailsService userDetailsService;
    @Autowired
    AuthenticationManager authenticationManager;
    /**
     * <p>设置令牌存储方式</p>
     * InMemoryTokenStore 在内存中存储令牌。
     * RedisTokenStore 在Redis缓存中存储令牌。 
     * JwkTokenStore 支持使用JSON Web Key (JWK)验证JSON Web令牌(JwT)的子Web签名(JWS)
     * JwtTokenStore 不是真正的存储,不持久化数据,身份和访问令牌可以相互转换。
     * JdbcTokenStore 在数据库存储,需要创建相应的表存储数据
     */
    @Bean
    public TokenStore tokenStore() {
        return new RedisTokenStore(connectionFactory);
    }
    /**
     * <p>设置密码校验器</p>
     * NoOpPasswordEncoder 直接文本比较  equals
     */
    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    } 
    /**
     * *用来配置令牌端点(Token Endpoint)的安全约束。
     */
    @Override
    public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
        security
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值