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

济宁网站开发招聘wordpress配置教程

济宁网站开发招聘,wordpress配置教程,制作网页常用的软件有哪些,帮朋友免费做网站文章目录 0、OAuth2服务端结构1、授权服务配置2、授权服务器 ⇒ 配置客户端详情3、授权服务器 ⇒ 管理令牌配置4、授权服务器#xff1a;配置端点访问的安全约束5、资源服务器配置 相关#x1f4d5;#xff1a; 【OAuth2授权服务器配置完整Demo】 0、OAuth2服务端结构 OAu… 文章目录 0、OAuth2服务端结构1、授权服务配置2、授权服务器 ⇒ 配置客户端详情3、授权服务器 ⇒ 管理令牌配置4、授权服务器配置端点访问的安全约束5、资源服务器配置 相关 【OAuth2授权服务器配置完整Demo】 0、OAuth2服务端结构 OAuth2服务的提供端包括两部分 授权服务负责校验接入的客户端、登录的用户账户是否合法以及颁发token资源服务校验token返回资源信息 比如创建两个服务uua服务用来做授权服务order服务用来做资源服务。 1、授权服务配置 Spring Security Oauth核心依赖 dependencygroupIdorg.springframework.security.oauth/groupIdartifactIdspring-security-oauth2/artifactIdversion2.4.1/version /dependency用 EnableAuthorizationServer 注解并继承AuthorizationServerConfigurerAdapter来配置OAuth2.0 授权服务器。 或者直接去实现AuthorizationServerConfigurer接口都一样 Configuration EnableAuthorizationServer public class AuthorizationServer extends AuthorizationServerConfigurerAdapter {//略... }授权服务器中需要配置以下三点 ClientDetailsServiceConfigurer用来配置客户端详情服务看支持哪些客户端来请求 AuthorizationServerEndpointsConfigurer解决两点客户端来申请令牌了申请的地址是什么令牌端点以及令牌怎么发放 AuthorizationServerSecurityConfigurer配置令牌端点的安全约束哪些url开放哪些需要鉴权 2、授权服务器 ⇒ 配置客户端详情 通过ClientDetailsServiceConfigurer来配置客户端详情。而一个ClientDetails对象则是表示一个客户端的详情包括客户端的ID、密码、授权范围、授权类型等。相关属性 clientId客户端IDsecret客户端密钥scope限制客户端的访问范围authorizedGrantTypes授权类型authorities客户端可以使用的权限 配置客户端详情可以通过内存和数据库的方式 方式一 客户端详情ClientDetails的查询要通过ClientDetailsService可以直接用框架的JdbcClientDetailsService。也可自己实现ClientDetailsService接口和ClientRegistrationService接口的类用于加载和增删改客户端详情信息。然后如下设置客户端详情服务 Override public void configure(ClientDetailsServiceConfigurer clients) throws Exception {clients.withClientDetails(clientDetailsService)//...JdbcClientDetailsService相关源码 方式二 在内存中配置客户端详情服务硬编码或者使用配置文件Value读取实现写活。如下 /*** Oauth2.0客户端角色的信息来源内存、数据库* 这里用内存做测试*/ Override public void configure(ClientDetailsServiceConfigurer clientDetailsServiceConfigurer) throws Exception {clientDetailsServiceConfigurer.inMemory() //使用内存.withClient(c1) //client_id.secret(new BCryptPasswordEncoder().encode(123321)) //客户端密钥.resourceIds(res1,res2) //资源列表一个标识后面配置资源服务会用到.authorizedGrantTypes(authorization_code,password, client_credentials, implicit, refresh_token) //支持的授权模式这里即四种都支持.scopes(all) //允许授权的范围一个标识.autoApprove(false) //不自动授权即跳转到授权页面让用户授权.redirectUris(http://your_url); //验证回调地址授权码通过302重定向方法这里要验证回调地址是否被恶意篡改//后面继续链式调用and方法可以配置第二个客户端的信息}通过以上配置Spring Security将会在内存中或者数据库中加载客户端详情并在认证和授权过程中使用这些信息来验证和授权客户端的请求。 3、授权服务器 ⇒ 管理令牌配置 AuthorizationServerTokenServices接口定义了令牌操作方法 其实现类是DefaultTokenServices 该实现类聚合了TokenStore接口做持久化令牌令牌存储策略。其实现类 InMemoryTokenStore令牌存内存中JdbcTokenStore令牌写进数据库JwtTokenStoreJWT令牌服务端自行解析 以下演示内存中的先定义TokenStore Configuration public class TokenConfig {//令牌存储策略Beanpublic TokenStore tokenStore() {//放内存return new InMemoryTokenStore();} }定义AuthorizationServerTokenServices使用其实现类DefaultTokenServices这里设置token的相关配置 //注入上面定义的令牌存储策略的Bean Autowired private TokenStore tokenStore;//注入客户端详情服务定义下这个Bean是实现方式JDBC、内存、自己实现这个接口 Autowired private ClientDetailsService clientDetailsService;//token令牌管理 Bean public AuthorizationServerTokenServices tokenServices() {DefaultTokenServices tokenServices new DefaultTokenServices();tokenServices.setClientDetailsService(clientDetailsService); //客户端信息服务即向哪个客户端颁发令牌tokenServices.setSupportRefreshToken(true); //支持产生刷新令牌tokenServices.setTokenStore(tokenStore); //令牌的存储策略tokenServices.setAccessTokenValiditySeconds(7200); //令牌默认有效期2小时tokenServices.setRefreshTokenValiditySeconds(259200); //refresh_token默认有效期三天return tokenServices; }定义好这令牌存储和令牌配置的两个Bean下面重写第二个configure方法 Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {//你的逻辑 }这个方法AuthorizationServerEndpointsConfigurer类型的形参可以配置授权服务器支持的授权类型 authenticationManager配置认证管理器以支持密码模式userDetailsService配置这个说明有自己的UserDetailsService接口实现此后refresh_token获取新令牌框架会去检查当前账户是否有效如是否被禁用authorizationCodeServices配置授权码服务以支持授权码模式implicitGrantService隐式授权模式需要tokenGranter配置这个说明要自定义授权逻辑 示例 /*** 授权信息保存策略*/ Bean public ApprovalStore approvalStore(){return new InMemoryApprovalStore(); }//AuthenticationManager对象在Oauth2认证服务中要使用提取放到IOC容器中实现WebSecurityConfigurerAdapter的安全配置类中配置 Override Bean public AuthenticationManager authenticationManagerBean() throws Exception {return super.authenticationManagerBean(); }//设置授权码模式下授权码如何存储 Bean(name jdbcAuthorizationCodeServices) public AuthorizationCodeServices authorizationCodeServices(){return new InMemoryAuthorizationCodeServices(); }/*** 令牌端点访问和令牌服务令牌怎么生成、怎么存储等*/ Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {endpoints.authenticationManager(authenticationManager) //设置认证管理器密码模式需要.authorizationCodeServices(authorizationCodeServices) //授权码模式需要.approvalStore(approvalStore).tokenServices(tokenServices()) //token管理服务.allowedTokenEndpointRequestMethods(HttpMethod.POST); //允许Post方式访问 }最后配置授权端点的URL框架默认URL为 /oauth/authorize授权端点/oauth/token令牌端点/oauth/confirm_access用户确认授权提交端点/oauth/error授权服务错误信息端点/oauth/check_token用于资源服务访问的令牌解析端点/oauth/token_key提供公有密匙的端点如果你使用JWT令牌的话AuthorizationServerEndpointsConfigurer的pathMapping方法可以把这些默认的URL替换成自己定义的URL形参1为默认链接形参2为新的自定义的URL链接 4、授权服务器配置端点访问的安全约束 在这里配置框架提供的端点url哪些是可以对外公开的比如下面即check/token接口对外公开 /*** token令牌端点访问的安全策略* 不是所有人都可以来访问框架提供的这些令牌端点的*/ Override public void configure(AuthorizationServerSecurityConfigurer authorizationServerSecurityConfigurer) throws Exception {authorizationServerSecurityConfigurer.tokenKeyAccess(permitAll()) //oauth/token_key这个端点url是公开的不用登录可调.checkTokenAccess(permitAll()) // oauth/check_token这个端点是公开的.allowFormAuthenticationForClients(); //允许客户端表单认证申请令牌 }5、资源服务器配置 Spring Security Oauth核心依赖 dependencygroupIdorg.springframework.security.oauth/groupIdartifactIdspring-security-oauth2/artifactIdversion2.4.1/version /dependency在资源服务做token校验合法且权限匹配则返回数据资源。配置方式 用 EnableResourceServer注解并继承 ResourceServerConfigurerAdapter或实现ResourceServerConfigurer来配置OAuth2.0 授权服务器。 Configuration EnableResourceServer EnableGlobalMethodSecurity(securedEnabled true) public class OAuthSourceConfig extends ResourceServerConfigurerAdapter {public static final String RESOURCE_ID res1;ResourceResourceServerTokenServices resourceServerTokenServices;Beanpublic TokenStore tokenStore() {//放内存return new InMemoryTokenStore();}Overridepublic void configure(ResourceServerSecurityConfigurer resources) throws Exception {resources.resourceId(RESOURCE_ID) //资源id.tokenStore(tokenStore()) //告诉资源服务token在库里.tokenServices(resourceServerTokenServices).stateless(true);}Overridepublic void configure(HttpSecurity http) throws Exception {http.authorizeRequests()//这就是给客户端发token时的scope这里会校验scope标识.antMatchers(/**).access(#oauth2.hasAnyScope(all)).and().csrf().disable().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);} } 通过ResourceServerSecurityConfigurer对象配置 resourceId资源ID对应授权服务器里的资源ID标识tokenServicesResourceServerTokenServices 类的实例tokenStore指定令牌在哪儿如何访问 关于ResourceServerTokenServices其用来验证token。如何授权服务和资源服务在一个应用上可用DefaultTokenServices使用/oauth/check_token这个端点去校验令牌。反之需要使用远程token服务RemoteTokenServices指定授权服务器校验token的地址。以及自己的密钥和客户端ID Configuration public class BeanConfig {Beanpublic ResourceServerTokenServices tokenServices() {RemoteTokenServices services new RemoteTokenServices();services.setCheckTokenEndpointUrl(http://localhost:9009/oauth/check_token);services.setClientId(c1);services.setClientSecret(123);return services;} }
http://www.hkea.cn/news/14562489/

相关文章:

  • 房产网站如何做微信公众号买卖平台
  • 常熟做网站的公司北京最新消息今天新闻
  • 北京网站关键词优化wordpress做简单的商城
  • 大连网站建设 选领超科技国外做滑板网站
  • 建立企业网站的技能绵阳低价网站建设
  • 做网站推广费用典型的四大综合门户网站
  • 网站添加定位怎么做免费站长统计工具
  • 江苏国泰做的网站案例wordpress 被镜像
  • 红色大气网络公司企业网站源码_适合广告设计济南专业的网站建设公司
  • 猪八戒网站做设计兼职流程网站推广排名
  • 腾讯域名怎么做网站360网站建设基本情况
  • 厦门市网站建设公司网站域名多少钱
  • 建站之星建出来的网站如何上传如何查一个网站的备案信息
  • 做一个企业网站多少钱pr培训
  • 广州建网站自助建站系统建模网站素材
  • 佛山营销网站建设推广htm网站的维护
  • 山西中小学网站建设成都私人做公司网站的
  • 网站建设选择哪种开发语言最好贵阳企业建站系统模板
  • 网游排行榜2021排行榜做神马网站优化快速排
  • 网站开发与设计 课程简介重庆建设工程信息查询系统官网
  • 太原市外贸网站建设乌克兰俄罗斯最新消息
  • 网页做的很美的网站微信小程序代码怎么弄
  • 网站建设违约责任条款建站之星网站 seo优化
  • 网站开发属于什么科目网页代理访问
  • 商贸公司寮步网站建设极致发烧公司常用网站开发软件
  • 建设h5网站铁岭百姓网免费发布信息网
  • 多配色创意metro风格企业网站织梦模板建设网站的功能定位
  • 桂林建站平台哪家好大连网页制作美工
  • 安徽工程建设信息网站6个人中心页面模板
  • 怎么直接用代码做网站做别人一样的网站