Conceito de sinal único
O único sinal, referido como SSO, é uma das soluções mais populares para a integração de negócios corporativos. A definição de SSO é que, em vários sistemas de aplicativos, os usuários precisam fazer login apenas para acessar todos os sistemas de aplicativos mutuamente confiáveis. A lógica de login é mostrada na figura acima
Implementação baseada no balde da família Spring
Seleção técnica:
Cliente:
Dependência do Maven
<Depencency> <PuerpId> org.springframework.boot </frugiD> <ArtifactId> Spring-boot-starter-web </artifactId> </dependency> <pendesency> </Groupid> org.springframework.boot </groupid> <TifactId> Spring-boot StarterStactury </Artiftif </Artifactid> Spring-starter <GrupidId> org.springframework.security.oauth </frugiD> <ArtifactId> Spring-Security-OATH2 </sutifactId> </dependency> <pendesency> <puperid> org.springframework.security </grupo
Anotação de EnableoAuth2SSO
Configuração da aula de entrada @@ enableoauth2ssso
@SpringbooTApplicationPublic Class pigssoclientDemoApplication {public static void main (string [] args) {springApplication.run (pigssoclientDemoApplication.class, args); }}Arquivo de configuração
Segurança: OAuth2: Client: Client-ID: Pig Client-Secret: Pig User-Authorization-Uri: http: // localhost: 3000/oauth/autorize access-token-uri: http: // localhost: 3000/oauth/token scope: servidor recursos: Sessões: Nunca
SSO Authentication Server
Configuração do servidor de autenticação
@Configuration@order (Integer.min_Value) @enableAuthorizationserververpublic Classe PigauthorizeConfig estende AutorizaçõeserververConfigureRAdApter {@Override public void Configure (ClientDetailServiceconFigurer) A exceção {clientS.inMemory (). .Secret (AuthServerConfig.getClientCret ()) .authorizedGrantTypes (SecurityConstants.Refresh_Token, SecurityConstants.Password, SecurityConstants.authorization_code) .Scopes (authserverconfig.getScope ()); } @Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) { endpoints .tokenStore(new RedisTokenStore(redisConnectionFactory)) .accessTokenConverter(jwtAccessTokenConverter()) .authenticationManager(authenticationManager) .exceptionTranslator(pigWebResponseExceptionTranslator) .reuserefreshtokens (false) .UserDetailSService (UserDetailSService); } @Override public void Configurar (AutorizaçõeserversCurityConfigurer Security) lança a Exceção {Security .AlowFormAthenticationForCliients () .TokenKeyAccess ("isauthenticated ()") .CheckTokenAccess ("Permitall ()"); } @Bean Public PasswordEncoder PasswordEncoder () {Return New BCryptPasswordEncoder (); } @Bean public jwtaccessTokEnconverter jwtaccessTokEnconverter () {jwtaccessTokEnconverter jwtaccessTokenconverter = new jwtaccestTokEnconverter (); jwtaccessTokEnconverter.SetSigningKey (CommonConstant.sign_key); devolver jwtaccessTokEnconverter; }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.