Единая концепция входа
Одиночный знак, называемый SSO, является одним из самых популярных решений для предприятия. Определение SSO заключается в том, что в нескольких системах приложений пользователям необходимо войти в систему только один раз, чтобы получить доступ к всем взаимоприязным прикладным системам. Логика входа в систему показана на рисунке выше
Реализация на основе весеннего семейного ведра
Технический выбор:
Клиент:
зависимость Maven
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency><dependency> <groupId> org.springframework.security.oauth </GroupId> <ratifactId> Spring-Security-OAUTH2 </artifactid> </depervice> <depervice> <groupd> org.springframework.security </Groupid> <artifactid> spring-jwt </artifactid> зависимость> зависимости> </artifactid> spring-securit
EnableOauth2sso аннотация
Конфигурация класса входа @@ enableauth2sso
@Springbootapplicationpublic class pigssoclientdemoapplication {public static void main (string [] args) {springapplication.run (pigssoclientdemoapplication.class, args); }}Файл конфигурации
Безопасность: OAuth2: Client: Client-Id: Client Client-Secret: Pig User-Authorization-Uri: http: // localhost: 3000/oauth/adurize access-token-uri: http: // localhost: 3000/oauth/token acpope: jwtpes
Сервер аутентификации SSO
Конфигурация сервера аутентификации
@Configuration@order (integer.min_value) @enableauthorizationserverpublic class pigauthorizationconfig Extends AutorrizationServerConfigurerAdapter {@Override public void configure (ClientDetailsServiceConfiger Clients) ThrousClientCure Clients) throusclientCure) ThrousClientCure). .secret (AuthserverConfig.getClientSecret ()) .AuthorizedGrantTypes (SecurityConstants.refresh_token, SecurityConstants.Password, SecurityConstants.Authorization_Code) .scopes (autherverConfig.getScope ()); } @Override public void configure (AuthorizationServerEndPointSconfigurer Endpoints) {конечные точки .tokenstore (new Redistokenstore (RedisconnectionFactory)). Accesstokenconverter (jwtaccesstokenconverter (). AuthentanticationManager (AuthentNancemancepration). .reuserefreshtokens (false) .userdetailsservice (userdetailsservice); } @Override public void configure (AuthortizationServerseCurityConfigurer Security) Throws Exception {Security. AllowformAuthenticationForclients () .tokenKeyAccess ("isauthenticated ()") .CheckTokenAccess ("armitall ()"); } @Bean public passwordEncoder passwordEncoder () {return new bcryptpasswordencoder (); } @Bean public jwtaccesstokenconverter jwtaccesstokenconverter () {jwtaccesstokenconverter jwtaccesstokenconverter = new jwtaccesstokenconverter (); jwtaccesstokenconverter.setsigningkey (commonconstant.sign_key); вернуть jwtaccesstokenconverter; }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.