之前写了很多关于spring cloud的文章,今天我们对OAuth2.0的整合方式做一下笔记,首先我从网上找了一些关于OAuth2.0的一些基础知识点,帮助大家回顾一下知识点:
一、oauth中的角色
client:调用资源服务器API的应用
Oauth 2.0 Provider:包括Authorization Server和Resource Server
(1)Authorization Server:认证服务器,进行认证和授权
(2)Resource Server:资源服务器,保护受保护的资源
user:资源的拥有者
二、下面详细介绍一下Oauth 2.0 Provider
Authorization Server:
(1)AuthorizationEndpoint:进行授权的服务,Default URL: /oauth/authorize
(2)TokenEndpoint:获取token的服务,Default URL: /oauth/token
Resource Server:
OAuth2AuthenticationProcessingFilter:给带有访问令牌的请求加载认证
三、下面再来详细介绍一下Authorization Server:
一般情况下,创建两个配置类,一个继承AuthorizationServerConfigurerAdapter,一个继承WebSecurityConfigurerAdapter,再去复写里面的方法。
主要出现的两种注解:
1、@EnableAuthorizationServer:声明一个认证服务器,当用此注解后,应用启动后将自动生成几个Endpoint:(注:其实实现一个认证服务器就是这么简单,加一个注解就搞定,当然真正用到生产环境还是要进行一些配置和复写工作的。)
/oauth/authorizeint包里面。
2、@Beans:需要实现AuthorizationServerConfigurer
AuthorizationServerConfigurer包含三种配置:
ClientDetailsServiceConfigurer:client客户端的信息配置,client信息包括:clientId、secret、scope、authorizedGrantTypes、authorities
(1)scope:表示权限范围,可选项,用户授权页面时进行选择
(2)authorizedGrantTypes:有四种授权方式
Authorization Code:用验证获取code,再用code去获取token(用的多的方式,也是安全的方式)
Implicit: 隐式授权模式
Client Credentials (用來取得 App Access Token)
Resource Owner Password Credentials
(3)authorities:授予client的权限
这里的具体实现有多种,in-memory、JdbcClientDetailsService、jwt等。
AuthorizationServerSecurityConfigurer:声明安全约束,哪些允许访问,哪些不允许访问
AuthorizationServerEndpointsConfigurer:声明授权和token的端点以及token的服务的一些配置信息,比如采用什么存储方式、token的有效期等
client的信息的读取:在ClientDetailsServiceConfigurer类里面进行配置,可以有in-memory、jdbc等多种读取方式。
jdbc需要调用JdbcClientDetailsService类,此类需要传入相应的DataSource.
下面再介绍一下如何管理token:
AuthorizationServerTokenServices接口:声明必要的关于token的操作
(1)当token创建后,保存起来,以便之后的接受访问令牌的资源可以引用它。
(2)访问令牌用来加载认证
接口的实现也有多种,DefaultTokenServices是其默认实现,他使用了默认的InMemoryTokenStore,不会持久化token;
token存储方式共有三种分别是:
(1)InMemoryTokenStore:存放内存中,不会持久化
(2)JdbcTokenStore:存放数不需要保护,哪些需要保护。默认全都保护。
自定义UI:
(1)有时候,我们可能需要自定义的登录页面和认证页面。登陆页面的话,只需要创建一个login为前缀名的网页即可,在代码里,设置为允许访问,这样,系统会自动执行你的登陆页。此登陆页的action要注意一下,必须是跳转到认证的地址。
(2)另外一个是授权页,让你勾选选项的页面。此页面可以参考源码里的实现,自己生成一个controller的类,再创建一个对应的web页面即可实现自定义的功能。
下面梳理一下授权获取token流程:
(1)端口号换成你自己的认证服务器的端口号,client_id也换成你自己的,response_type类型为code。
localhost:8080/uaa/oauth/authorize?client_id=client&response_type=code&redirect_uri=
(2)这时候你将获得一个code值:
(3)使用此code值来获取终的token:
curl -X POST -H "Cant-Type: application/x-www-form-urlencoded" -d 'grant_type=authorization_code&code=G0C20Z&redirect_uri=m' "//client:secret@localhost:8080/uaa/oauth/token"
返回值:
{"access_token":"b251b453-cc08-4520-9dd0-9aedf58e6ca3","token_type":"bearer","expires_in":2591324,"scope":"app"}
(4)用此token值来调用资源服务器内容(如果资源
(2)TokenEndpoint:获取token的服务,Default URL: /oauth/token
Resource Server:
OAuth2AuthenticationProcessingFilter:给带有访问令牌的请求加载认证
三、下面再来详细介绍一下Authorization Server:
一般情况下,创建两个配置类,一个继承AuthorizationServerConfigurerAdapter,一个继承WebSecurityConfigurerAdapter,再去复写里面的方法。
主要出现的两种注解:
1、@EnableAuthorizationServer:声明一个认证服务器,当用此注解后,应用启动后将自动生成几个Endpoint:(注:其实实现一个认证服务器就是这么简单,加一个注解就搞定,当然真正用到生产环境还是要进行一些配置和复写工作的。)
/oauth/authorize:验证
/oauth/token:获取token
/oauth/confirm_access:用户授权
一、oauth中的角色
client:调用资源服务器API的应用
Oauth 2.0 Provider:包括Authorization Server和Resource Server
(1)Authorization Server:认证服务器,进行认证和授权
(2)Resource Server:资源服务器,保护受保护的资源
user:资源的拥有者
二、下面详细介绍一下Oauth 2.0 Provider
Authorization Server:
(1)AuthorizationEndpoint:进行授权的服务,Default URL: /oauth/authorize
(2)TokenEndpoint:获取token的服务,Default URL: /oauth/token
Resource Server:
OAuth2AuthenticationProcessingFilter:给带有访问令牌的请求加载认证
三、下面再来详细介绍一下Authorization Server:
一般情况下,创建两个配置类,一个继承AuthorizationServerConfigurerAdapter,一个继承WebSecurityConfigurerAdapter,再去复写里面的方法。
主要出现的两种注解:
1、@EnableAuthorizationServer:声明一个认证服务器,当用此注解后,应用启动后将自动生成几个Endpoint:(注:其实实现一个认证服务器就是这么简单,加一个注解就搞定,当然真正用到生产环境还是要进行一些配置和复写工作的。)
/oauth/authorize:验证
/oauth/token:获取token
/oauth/confirm_access:用户授权
/oauth/error:认证失败
/oauth/check_token:资源服务器用来校验token
/oauth/token_key:如果jwt模式则可以用此来从认证服务器获取公
且记录下来,给自己做个记录把。
且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关
且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关能:velocity>freemarker>jsp,开发且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关速度:velocity>freemarker>jsp
且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关
且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关
数据库设计:
1、关键的一个是不能有外键强关且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关且记录下来,给自己做个记录把。
之**直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于Java是开源的,近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以终选择Java后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
控制层:这几年SpringMvc发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。用SpringBoot来做配置管理。
视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp
数据库设计:
1、关键的一个是不能有外键强关
8、交互强大
及时简洁且有效的电商沟通是运营成功的一个关键,没有人愿意长时间的等待结果。B2B2C商城搜索、咨询简便快捷,可以让消费者快速获取想要的商品信息。无论售前还是售后,都可以提供优质的用户交互体验,好的用户体验才能留住用户,而用户则是企业核心的资产与竞争力。
多用户(B2B2C)商城系统是一种电子商务类型的网络购物的商业模式,可为传统企业和大中型网商打造以提高商家运营能力为核心的电商平台。不过做好多用户商城的运营也不是一件简单的事情,需要我们企业拥有创新的互联网思维、深刻的市场洞察以及综合的实践能力…8、交互强大
及时简洁且有效的电商沟通是运营成功的一个关键,没有人愿意长时间的等待结果。B2B2C商城搜索、咨询简便快捷,可以让消费者快速获取想要的商品信息。无论售前还是售后,都可以提供优质的用户交互体验,好的用户体验才能留住用户,而用户则是企业核心的资产与竞争力。
多用户(B2B2C)商城系统是一种电子商务类型的网络购物的商业模式,可为传统企业和大中型网商打造以提高商家运营能力为核心的电商平台。不过做好多用户商城的运营也不是一件简单的事情,需要我们企业拥有创新的互联网思维、深刻的市场洞察以及综合的实践能力…8、交互强大
及时简洁且有效的电商沟通是运营成功的一个关键,没有人愿意长时间的等待结果。B2B2C商城搜索、咨询简便快捷,可以让消费者快速获取想要的商品信息。无论售前还是售后,都可以提供优质的用户交互体验,好的用户体验才能留住用户,而用户则是企业核心的资产与竞争力。
多用户(B2B2C)商城系统是一种电子商务类型的网络购物的商业模式,可为传统企业和大中型网商打造以提高商家运营能力为核心的电商平台。不过做好多用户商城的运营也不是一件简单的事情,需要我们企业拥有创新的互联网思维、深刻的市场洞察以及综合的实践能力…8、交互强大
及时简洁且有效的电商沟通是运营成功的一个关键,没有人愿意长时间的等待结果。B2B2C商城搜索、咨询简便快捷,可以让消费者快速获取想要的商品信息。无论售前还是售后,都可以提供优质的用户交互体验,好的用户体验才能留住用户,而用户则是企业核心的资产与竞争力。
多用户(B2B2C)商城系统是一种电子商务类型的网络购物的商业模式,可为传统企业和大中型网商打造以提高商家运营能力为核心的电商平台。不过做好多用户商城的运营也不是一件简单的事情,需要我们企业拥有创新的互联网思维、深刻的市场洞察以及综合的实践能力…8、交互强大
及时简洁且有效的电商沟通是运营成功的一个关键,没有人愿意长时间的等待结果。B2B2C商城搜索、咨询简便快捷,可以让消费者快速获取想要的商品信息。无论售前还是售后,都可以提供优质的用户交互体验,好的用户体验才能留住用户,而用户则是企业核心的资产与竞争力。
多用户(B2B2C)商城系统是一种电子商务类型的网络购物的商业模式,可为传统企业和大中型网商打造以提高商家运营能力为核心的电商平台。不过做好多用户商城的运营也不是一件简单的事情,需要我们企业拥有创新的互联网思维、深刻的市场洞察以及综合的实践能力…8、交互强大
及时简洁且有效的电商沟通是运营成功的一个关键,没有人愿意长时间的等待结果。B2B2C商城搜索、咨询简便快捷,可以让消费者快速获取想要的商品信息。无论售前还是售后,都可以提供优质的用户交互体验,好的用户体验才能留住用户,而用户则是企业核心的资产与竞争力。
多用户(B2B2C)商城系统是一种电子商务类型的网络购物的商业模式,可为传统企业和大中型网商打造以提高商家运营能力为核心的电商平台。不过做好多用户商城的运营也不是一件简单的事情,需要我们企业拥有创新的互联网思维、深刻的市场洞察以及综合的实践能力…8、交互强大
及时简洁且有效的电商沟通是运营成功的一个关键,没有人愿意长时间的等待结果。B2B2C商城搜索、咨询简便快捷,可以让消费者快速获取想要的商品信息。无论售前还是售后,都可以提供优质的用户交互体验,好的用户体验才能留住用户,而用户则是企业核心的资产与竞争力。
多用户(B2B2C)商城系统是一种电子商务类型的网络购物的商业模式,可为传统企业和大中型网商打造以提高商家运营能力为核心的电商平台。不过做好多用户商城的运营也不是一件简单的事情,需要我们企业拥有创新的互联网思维、深刻的市场洞察以及综合的实践能力…8、交互强大
及时简洁且有效的电商沟通是运营成功的一个关键,没有人愿意长时间的等待结果。B2B2C商城搜索、咨询简便快捷,可以让消费者快速获取想要的商品信息。无论售前还是售后,都可以提供优质的用户交互体验,好的用户体验才能留住用户,而用户则是企业核心的资产与竞争力。
多用户(B2B2C)商城系统是一种电子商务类型的网络购物的商业模式,可为传统企业和大中型网商打造以提高商家运营能力为核心的电商平台。不过做好多用户商城的运营也不是一件简单的事情,需要我们企业拥有创新的互联网思维、深刻的市场洞察以及综合的实践能力…8、交互强大
及时简洁且有效的电商沟通是运营成功的一个关键,没有人愿意长时间的等待结果。B2B2C商城搜索、咨询简便快捷,可以让消费者快速获取想要的商品信息。无论售前还是售后,都可以提供优质的用户交互体验,好的用户体验才能留住用户,而用户则是企业核心的资产与竞争力。
多用户(B2B2C)商城系统是一种电子商务类型的网络购物的商业模式,可为传统企业和大中型网商打造以提高商家运营能力为核心的电商平台。不过做好多用户商城的运营也不是一件简单的事情,需要我们企业拥有创新的互联网思维、深刻的市场洞察以及综合的实践能力…8、交互强大
及时简洁且有效的电商沟通是运营成功的一个关键,没有人愿意长时间的等待结果。B2B2C商城搜索、咨询简便快捷,可以让消费者快速获取想要的商品信息。无论售前还是售后,都可以提供优质的用户交互体验,好的用户体验才能留住用户,而用户则是企业核心的资产与竞争力。
多用户(B2B2C)商城系统是一种电子商务类型的网络购物的商业模式,可为传统企业和大中型网商打造以提高商家运营能力为核心的电商平台。不过做好多用户商城的运营也不是一件简单的事情,需要我们企业拥有创新的互联网思维、深刻的市场洞察以及综合的实践能力…