项目场景:
言归正传,我们上一篇文章搭建的spring security显然不符合我们的需求,因此我们要在原来的基础上引入oauth.通过jwt的形式来完成登录模块。本篇文章我们只是引入oauth。
技术详解:
我们之前的配置只不过是引入了spring security,现在我们要加入oauth。
第一步:配置数据库
create table oauth_client_details (
client_id VARCHAR(256) PRIMARY KEY,
resource_ids VARCHAR(256),
client_secret VARCHAR(256),
scope VARCHAR(256),
authorized_grant_types VARCHAR(256),
web_server_redirect_uri VARCHAR(256),
authorities VARCHAR(256),
access_token_validity INTEGER,
refresh_token_validity INTEGER,
additional_information VARCHAR(4096),
autoapprove VARCHAR(256)
);
只需要配置这个表即可,因为最后的token信息我打算放到redis里面。表的字段描述如下
表名 | 字段名 | 字段说明 |
---|---|---|
oauth_client_details | client_id | 主键,必须唯一,不能为空. 用于唯一标识每一个客户端(client); 在注册时必须填写(也可由服务端自动生成). 对于不同的grant_type,该字段都是必须的. 在实际应用中的另一个名称叫appKey,与client_id是同一个概念. |
resource_ids | 客户端所能访问的资源id集合,多个资源时用逗号(,)分隔,如: "unity-resource,mobile-resource". 该字段的值必须来源于与 security.xml 中标签‹oauth2:resource-server 的属性resource-id 值一致. 在security.xml 配置有几个‹oauth2:resource-server 标签, 则该字段可以使用几个该值. 在实际应用中, 我们一般将资源进行分类,并分别配置对应的 ‹oauth2:resource-server ,如订单资源配置一个‹oauth2:resource-server , |