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

网站备案 中国内蒙古建设厅网站

网站备案 中国,内蒙古建设厅网站,wordpress文章多个分类显示,滨州网站定制SpringBoot是目前非常流行的一个Java开发框架#xff0c;它以简洁的配置和快速的开发效率著称。在实际应用中#xff0c;单点登录是一个非常重要的功能#xff0c;它可以让用户在多个应用系统中使用同一个账号登录#xff0c;提高用户体验和安全性。本文将详细讲解如何在Sp…SpringBoot是目前非常流行的一个Java开发框架它以简洁的配置和快速的开发效率著称。在实际应用中单点登录是一个非常重要的功能它可以让用户在多个应用系统中使用同一个账号登录提高用户体验和安全性。本文将详细讲解如何在SpringBoot中实现单点登录功能并提供流程图和源码demo供大家参考。 一、单点登录的概念和原理 单点登录Single Sign On简称SSO是指用户只需要登录一次就可以在多个应用系统中使用同一个账号登录。它的工作原理是通过一个中心认证系统来管理用户的登录状态当用户在其中一个应用系统中登录成功后中心认证系统会生成一个令牌Token并将该令牌存储在用户的浏览器中。当用户访问其他应用系统时该系统会向中心认证系统发送一个认证请求中心认证系统会验证该请求的合法性并将用户的登录状态返回给该应用系统。这样用户就可以在多个应用系统中使用同一个账号登录而无需重复输入用户名和密码。 二、SpringBoot中实现单点登录的步骤 集成Spring Security Spring Security是Spring框架中用于安全认证和授权的模块它提供了一系列的安全特性包括身份认证、访问控制、密码加密等。在SpringBoot中我们可以通过引入spring-boot-starter-security依赖来集成Spring Security。 配置认证服务器 在Spring Security中认证服务器是用于管理用户登录状态和生成令牌的核心组件。我们需要在SpringBoot中配置一个认证服务器并指定其认证方式、用户信息来源、令牌生成规则等。下面是一个简单的认证服务器配置示例 Configuration EnableAuthorizationServer public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {Autowiredprivate AuthenticationManager authenticationManager;Autowiredprivate UserDetailsService userDetailsService;Autowiredprivate TokenStore tokenStore;Overridepublic void configure(ClientDetailsServiceConfigurer clients) throws Exception {clients.inMemory().withClient(client).secret({noop}secret).authorizedGrantTypes(password, refresh_token).scopes(read, write).accessTokenValiditySeconds(3600).refreshTokenValiditySeconds(86400);}Overridepublic void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {endpoints.authenticationManager(authenticationManager).userDetailsService(userDetailsService).tokenStore(tokenStore);} }在上述配置中我们通过EnableAuthorizationServer注解启用了认证服务器并指定了认证方式为密码认证和刷新令牌用户信息来源为自定义的UserDetailsService实现类令牌存储方式为内存存储。 配置资源服务器 在Spring Security中资源服务器是用于保护应用系统中的资源只有经过认证和授权的用户才能访问。我们需要在SpringBoot中配置一个资源服务器并指定其保护的资源、访问规则等。下面是一个简单的资源服务器配置示例 Configuration EnableResourceServer public class ResourceServerConfig extends ResourceServerConfigurerAdapter { Override public void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers(/api/**).authenticated() .anyRequest().permitAll(); } } 在上述配置中我们通过EnableResourceServer注解启用了资源服务器并指定了保护的资源为/api/**访问规则为需要认证的用户才能访问。 配置客户端 在单点登录中客户端是指需要接入认证服务器的应用系统。我们需要在SpringBoot中配置一个客户端并指定其接入认证服务器的方式、令牌获取规则等。下面是一个简单的客户端配置示例 Configuration EnableOAuth2Sso public class OAuth2SsoConfig extends WebSecurityConfigurerAdapter { Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers(/login/**, /error/**).permitAll() .anyRequest().authenticated(); } } 在上述配置中我们通过EnableOAuth2Sso注解启用了客户端并指定了登录页面和错误页面的访问规则以及需要认证的用户才能访问的其他页面的访问规则。 配置单点登录 在上述步骤完成后我们已经可以在应用系统中实现基本的认证和授权功能了。但是如果我们需要实现单点登录还需要进行一些额外的配置。具体来说我们需要在认证服务器和客户端之间建立信任关系以便客户端可以通过认证服务器获取令牌并在其他应用系统中使用该令牌登录。下面是一个简单的单点登录配置示例 Configuration public class SsoConfig { Autowired private ResourceServerProperties resourceServerProperties; Autowired private AuthorizationServerProperties authorizationServerProperties; Bean public RemoteTokenServices remoteTokenServices() { RemoteTokenServices remoteTokenServices new RemoteTokenServices(); remoteTokenServices.setCheckTokenEndpointUrl(authorizationServerProperties.getCheckTokenEndpointUrl()); remoteTokenServices.setClientId(resourceServerProperties.getClientId()); remoteTokenServices.setClientSecret(resourceServerProperties.getClientSecret()); return remoteTokenServices; } Bean public FilterRegistrationBean oauth2ClientFilterRegistration(OAuth2ClientContextFilter filter) { FilterRegistrationBean registration new FilterRegistrationBean(); registration.setFilter(filter); registration.setOrder(-100); return registration; } Bean ConfigurationProperties(security.oauth2.client) public AuthorizationCodeResourceDetails authorizationCodeResourceDetails() { return new AuthorizationCodeResourceDetails(); } Bean ConfigurationProperties(security.oauth2.resource) public ResourceServerProperties resourceServerProperties() { return new ResourceServerProperties(); } Bean public OAuth2RestTemplate oauth2RestTemplate(OAuth2ClientContext oauth2ClientContext) { return new OAuth2RestTemplate(authorizationCodeResourceDetails(), oauth2ClientContext); } } 在上述配置中我们通过配置RemoteTokenServices实现了认证服务器和客户端之间的信任关系通过配置OAuth2ClientContextFilter实现了客户端的过滤器通过配置AuthorizationCodeResourceDetails和ResourceServerProperties实现了客户端的认证和授权规则通过配置OAuth2RestTemplate实现了客户端的令牌获取和使用。
http://www.hkea.cn/news/14587223/

相关文章:

  • php网站源码免费下载怎么建立一个免费网址
  • 桂林做网站的公司哪家最好电商网站开发 思维导图
  • 济南市建设执业资格注册中心网站网站建设服务器可以租吗
  • 宁国市网站关键词优化外包网站项目建设的组织机构
  • seo干什么郑州网站优化平台
  • 如何介绍网站模板下载威县做网站哪家好
  • 商业网站怎么做网站海外推广建设
  • 新手网站设计定价湖南优化电商服务有限公司
  • 推荐一本学做网站的书做网站怎么兼职
  • 视频直播sdk快速接入赤峰seo
  • 软装潢.企业网站建设网站搜索查询
  • 什么是网站名称文件夹别人冒用我们公司做的网站怎么关掉
  • 温州营销网站制作联系电话烟台企业展厅设计公司
  • 西安手机网站案例Wordpress 实名认证
  • 小说网站建设方案书ppt雄安做网站优化
  • 合肥网站建设培训室内设计公司名字大全
  • 创意设计作品欣赏汕头网站时优化
  • 亚马逊站外推广网站怎么做WordPress苏醒模板免费
  • 福田大型商城网站建设网站正在建设中 图片
  • 建筑工程找工作哪个网站好北京网页设计与制作
  • 网站建设header企业所得税税率2019
  • 广州市企业网站建设做网站要不要交税
  • 网站建设与管理课程标准深圳网站公司排名
  • 网站建设如何插音乐高清logo网站
  • 怎么用 c文件做网站新余网站建设公司
  • 深圳 旅游 网站建设职高网站建设例题
  • 汽车配件响应式网站营销网站设计公司排名
  • 网站安全建设 应用开发Wordpress 用户 AUTO_INCREMENT
  • 深圳网站设计是什么开源网站开发文档下载
  • 网站建设吉金手指专业15网站建设规划与管理 试卷