Concept de connexion unique
Le signe unique, appelé SSO, est l'une des solutions les plus populaires pour l'intégration des entreprises d'entreprise. La définition de SSO est que dans plusieurs systèmes d'applications, les utilisateurs n'ont besoin de se connecter qu'une seule fois pour accéder à tous les systèmes d'applications mutuellement fiables. La logique de connexion est illustrée dans la figure ci-dessus
Implémentation basée sur le seau de la famille du printemps
Sélection technique:
Client:
Dépendance Maven
<dependency> <proupId> org.springframework.boot </proupId> <ArtifActid> printemp-boot-starter-web </ artifactid> </pedigency> <dependency> <prouprid> org.springframework.boot </prouprid> <ptetifactid> printemps-boot-starter-security </ artifactid> </dedency> <GroupId> org.springFramework.Security.oauth </proupId> <ArtifActid> Spring-Security-Oauth2 </Retifactid> </Dendency> <Dendency> <ProupId> org.SpringFramework.Security </proupId> <Ertifactid> Spring-Security-jwt </ArtifActive> </Dedency>
ANTEROAUTH2SSO ANNOTATION
Configuration de la classe d'entrée @@ activeroAuth2SSO
@SpringBootApplicationPublic classe PigsSoclientDemoApplication {public static void main (String [] args) {SpringApplication.Run (PigSSoclientDemoApplication.Class, Args); }}Fichier de configuration
Sécurité: OAuth2: Client: Client-ID: Pig Client-Secret: Pig User-Autorisation-Uri: http: // localhost: 3000 / oAuth / Authoriser Access-Token-uri: http: // localhost: 3000 / oauth / token Scope: Server Resource: JWT: Key-uri: http: // Sessions: jamais
Serveur d'authentification SSO
Configuration du serveur d'authentification
@ Configuration @ Order (Integer.min_value) @enableAuthorizationsServerpublic Class PigAuthorizationConfig étend AuthorizationsServerConfigurerAdapter {@Override public void Configure (clientTailSServiceConfigurer Clients) lance Exception {Clients.inmemory () .WitHClient (AuthServerConfig.GlidClid ()). .Secret (AuthServerConfig.getClientCret ()) .AuthorizedGrantTypes (SecurityConstants.refresh_token, SecurityConstants.Password, SecurityConstants.Authorization_Code) .Scopes (AuthServerConfig.getScope ()); } @Override public void configure (AuthorizationserVerendPointSConfigurer Endpoints) {endpoint .TokenStore (new Redistokenstore (redisconnectionfactory)) .AccessStokenConverter (JWTACCESSTOKENCONVERTER ()) .AuthenticationManager (AuthenticationManager) .ExceptionTransSernator (PigWebrepSpeExtRanStor). .ReuseReFreshTokens (false) .UserDetailSService (UserDetailSService); } @Override public void Configure (AutorisationserSeCurityConfigurer Security) lève une exception {Security .AllowFormAuthenticationForClient () .TokenKeyAccess ("isAuthenticated ()") .CheckTokenAccess ("permutall ()"); } @Bean Public PasswordEncoder PasswordEncoder () {return new BCryptPasswordEncoder (); } @Bean public JWTACCESSTOKENCONverter JWTACCESSTOKENCONverter () {JWTACCESSTOKENCONVERTER JWTACCESSTOKENCONVERTER = NEW JWTACCESSTOKENCONverter (); JWTACCESSTOKENCONVERTER.SETSIGNINGKEY (CommonConstant.sign_key); retour jwtaccesstokenConverter; }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.