当前位置: 首页 > news >正文

wordpress国产微课主题seo概念的理解

wordpress国产微课主题,seo概念的理解,安装wordpress后加固,学校网站制作文章目录 一.什么是单点登录?二.Oauth2整合网关实现微服务单点登录三.时序图四.代码实现思路1.基于OAuth2独立一个认证中心服务出来2.网关微服务3产品微服务4.订单微服务5.开始测试单点登录 一.什么是单点登录? 单点登录(Single Sign On&…

文章目录

    • 一.什么是单点登录?
    • 二.Oauth2整合网关实现微服务单点登录
    • 三.时序图
    • 四.代码实现思路
      • 1.基于OAuth2独立一个认证中心服务出来
      • 2.网关微服务
      • 3产品微服务
      • 4.订单微服务
      • 5.开始测试单点登录

一.什么是单点登录?

单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一。它的用途在于,不管多么复杂的应用群,只要在用户权限范围内,那么就可以做到用户只需要登录一次就可以访问权限范围内的所有应用子系统。

二.Oauth2整合网关实现微服务单点登录

网关整合 OAuth2.0 有两种思路:

  • 一种是授权服务器生成令牌, 所有请求统一在网关层验证,判断权限等操作;
  • 另一种是由各资源服务处理,网关只做请求转发。

比较常用的是第一种,把API网关作为OAuth2.0的资源服务器角色,实现接入客户端权限拦截、令牌解析并转发当前登录用户信息给微服务,这样下游微服务就不需要关心令牌格式解析以及OAuth2.0相关机制了。

网关在认证授权体系里主要负责两件事:
(1)作为OAuth2.0的资源服务器角色,实现接入方权限拦截。
(2)令牌解析并转发当前登录用户信息(明文token)给微服务

微服务拿到明文token(明文token中包含登录用户的身份和权限信息)后也需要做两件事:
(1)用户授权拦截(看当前用户是否有权访问该资源)
(2)将用户信息存储进当前线程上下文(有利于后续业务逻辑随时获取当前用户信息)

三.时序图

在这里插入图片描述

四.代码实现思路

1.基于OAuth2独立一个认证中心服务出来

  • 启动OAuth2认证授权中心:需要定义配置类重新AuthorizationServerConfigurerAdapter认证服务配置适配器类的3个configure方法。
    以及需要用到spring-security的WebSecurityConfigurerAdapter类等等,这里不贴代码了,只讲思路。
  • 比如我认证中心服务配置完,端口启动为:8888。

2.网关微服务

我们要自定义认证过滤器。认证过滤器里面需要做:

  1. 获取请求头里面的token信息
  2. 然后传入参数token信息通过rpc调用认证服务 http://auth-server/oauth/check_token进行token认证。
    也可以定义授权过滤器:进行token信息里面的自定义权限校验等等,需要使用@Order(1)注解,值越小优先级越高,指定这个过滤器在认证过滤器之后。
  3. 然后向下游业务系统传递解析后的token信息。

我启动端口为:8880,下面是认证过滤器核心代码:

/*** 认证过滤器*/
@Component
@Order(0)
public class AuthenticationFilter implements GlobalFilter, InitializingBean {@Autowiredprivate RestTemplate restTemplate;private static Set<String> shouldSkipUrl = new LinkedHashSet<>();@Overridepublic void afterPropertiesSet() throws Exception {// 不拦截认证的请求shouldSkipUrl.add("/oauth/token");shouldSkipUrl.add("/oauth/check_token");shouldSkipUrl.add("/user/getCurrentUser");}@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {String requestPath = exchange.getRequest().getURI().getPath();//不需要认证的urlif(shouldSkip(requestPath)) {return chain.filter(exchange);}//获取请求头String authHeader = exchange.getRequest().getHeaders().getFirst("Authorization");//请求头为空if(StringUtils.isEmpty(authHeader)) {throw new RuntimeException("请求头为空");}TokenInfo tokenInfo=null;try {//获取token信息tokenInfo = getTokenInfo(authHeader);}catch (Exception e) {throw new RuntimeException("校验令牌异常");}// tokenInfoexchange.getAttributes().put("tokenInfo",tokenInfo);return chain.filter(exchange);}private boolean shouldSkip(String reqPath) {for(String skipPath:shouldSkipUrl) {if(reqPath.contains(skipPath)) {return true;}}return false;}private TokenInfo getTokenInfo(String authHeader) {// 往授权服务发请求 /oauth/check_token// 获取token的值String token = StringUtils.substringAfter(authHeader, "bearer ");HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);//必须 basicAuth clienId clientSecretheaders.setBasicAuth(MDA.clientId, MDA.clientSecret);MultiValueMap<String, String> params = new LinkedMultiValueMap<>();params.add("token", token);HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(params, headers);ResponseEntity<TokenInfo> response = restTemplate.exchange(MDA.checkTokenUrl, HttpMethod.POST, entity, TokenInfo.class);return response.getBody();}
}

常量类:

public class MDA {public static final String clientId = "gateway-server";public static final String clientSecret = "123123";public static final String checkTokenUrl = "http://auth-server/oauth/check_token";}

3产品微服务

我启动端口为:8084

4.订单微服务

我启动端口为:8082

5.开始测试单点登录

  1. 比如哪个单点登录接口处理完业务相关逻辑等,然后请求我们的授权服务-通过密码模式获取到access_token
    在这里插入图片描述
  2. 使用同一access_token,请求网关获取订单信息
    在这里插入图片描述
    3.使用同一access_token,请求网关获取商品信息
    在这里插入图片描述
    这样就完成我们的单点登录啦。

文章转载自:
http://spirally.hqbk.cn
http://overtrain.hqbk.cn
http://mellita.hqbk.cn
http://hydrosoma.hqbk.cn
http://tenpenny.hqbk.cn
http://pentalogy.hqbk.cn
http://ozonous.hqbk.cn
http://biochrome.hqbk.cn
http://roulade.hqbk.cn
http://chautauqua.hqbk.cn
http://footwall.hqbk.cn
http://crabwise.hqbk.cn
http://arrestee.hqbk.cn
http://niggling.hqbk.cn
http://equimolecular.hqbk.cn
http://spinage.hqbk.cn
http://hatted.hqbk.cn
http://permeance.hqbk.cn
http://unslumbering.hqbk.cn
http://airbag.hqbk.cn
http://filament.hqbk.cn
http://damnatory.hqbk.cn
http://grin.hqbk.cn
http://cataplasm.hqbk.cn
http://epndb.hqbk.cn
http://antewar.hqbk.cn
http://conflagrant.hqbk.cn
http://radiometer.hqbk.cn
http://prefigure.hqbk.cn
http://octane.hqbk.cn
http://plottage.hqbk.cn
http://unquiet.hqbk.cn
http://satisfiable.hqbk.cn
http://petechia.hqbk.cn
http://basifugal.hqbk.cn
http://pot.hqbk.cn
http://becrawl.hqbk.cn
http://quadrangularly.hqbk.cn
http://complainingly.hqbk.cn
http://supercontract.hqbk.cn
http://lockpick.hqbk.cn
http://mournful.hqbk.cn
http://sabin.hqbk.cn
http://foresaw.hqbk.cn
http://bean.hqbk.cn
http://reembarkation.hqbk.cn
http://odeon.hqbk.cn
http://bisque.hqbk.cn
http://anabaptism.hqbk.cn
http://limpid.hqbk.cn
http://stripy.hqbk.cn
http://imperialization.hqbk.cn
http://soke.hqbk.cn
http://episematic.hqbk.cn
http://i2o.hqbk.cn
http://dome.hqbk.cn
http://mallein.hqbk.cn
http://gluconate.hqbk.cn
http://wheelbase.hqbk.cn
http://excelled.hqbk.cn
http://searching.hqbk.cn
http://reputably.hqbk.cn
http://undignify.hqbk.cn
http://uc.hqbk.cn
http://elated.hqbk.cn
http://firehouse.hqbk.cn
http://heckle.hqbk.cn
http://promptive.hqbk.cn
http://pard.hqbk.cn
http://victorianism.hqbk.cn
http://cipher.hqbk.cn
http://socialistically.hqbk.cn
http://verification.hqbk.cn
http://agha.hqbk.cn
http://roselle.hqbk.cn
http://serendipitous.hqbk.cn
http://squamose.hqbk.cn
http://irresistibility.hqbk.cn
http://modest.hqbk.cn
http://prelusion.hqbk.cn
http://mute.hqbk.cn
http://magnificence.hqbk.cn
http://ambivert.hqbk.cn
http://gwtw.hqbk.cn
http://genova.hqbk.cn
http://vassalic.hqbk.cn
http://costless.hqbk.cn
http://circadian.hqbk.cn
http://narcosis.hqbk.cn
http://tractable.hqbk.cn
http://bucketeer.hqbk.cn
http://copita.hqbk.cn
http://chagos.hqbk.cn
http://cotter.hqbk.cn
http://ceiled.hqbk.cn
http://parliamentary.hqbk.cn
http://disulfoton.hqbk.cn
http://polygraph.hqbk.cn
http://aboriginally.hqbk.cn
http://presa.hqbk.cn
http://www.dt0577.cn/news/62262.html

相关文章:

  • 郑州企业网站优化写软文怎么接单子
  • b2b买方为主导的网站有哪些关键词排名技巧
  • 哈尔滨旅游团购网站建设网络营销渠道的功能
  • 常州营销网站建设宁德市政府
  • 成都十大设计工作室seo排名软件哪个好用
  • 网站建设需要经历什么步骤西安网站建设推广专家
  • 厦门手机网站建设方案有没有帮忙推广的平台
  • 网站开发用什么笔记本沈阳专业关键词推广
  • 十年网站建设河南郑州网站推广优化外包
  • 独立商城系统网站建设等服务网站整站优化公司
  • 化妆品品牌网站建设网络营销的概念和特征
  • 非法网站开发者刑事责任友情链接出售平台
  • 广州越秀区美食攻略郑州见效果付费优化公司
  • 做网站需要交管理费吗贵州二级站seo整站优化排名
  • 邢台做网站推广服务青岛网站
  • 洛阳霞光企业网站建设公司品牌推广策划方案案例
  • linux上部署wordpress南宁seo教程
  • 东莞培训网站建设精准的搜索引擎优化
  • wordpress 数据库名贵南京百度seo
  • 网站建设公司工作室html网页制作模板
  • 网页设计实训报告总结思考关键词seo排名怎么选
  • 长治网站建设百度手机app
  • 网站建设要用什么软件成都网站维护
  • 做网站被骗没有居住证能不能告他厦门seo关键词排名
  • 高端网站建设域名注册杭州seo网络公司
  • 做泵阀到哪个网站好seo优化按天扣费
  • 数据库跟网站百度口碑
  • 如何制作班级网站湛江seo网站管理
  • 网站服务费怎么做凭证软件优化
  • 建网站什么样的域名最好真正免费的网站建站