yhteystietoni
Mailmesophia@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Integroi kertakirjautumisratkaisu Spring Boot -projektiin
Hei kaikki, olen Weizhuan Taoke System 3.0:n editori, ja olen myös ohjelmoija, joka ei käytä pitkiä housuja talvella, mutta joka on silti viileä kylmällä säällä!
Nykyaikaisissa yrityssovelluksissa Single Sign-On (SSO) -ratkaisut ovat avainteknologioita, joilla varmistetaan, että käyttäjät voivat kirjautua sisään ja käyttää useita sovelluksia saumattomasti. Tässä artikkelissa esitellään yksityiskohtaisesti, kuinka kertakirjautumisratkaisu integroidaan Spring Boot -projektiin käyttökokemuksen ja järjestelmän turvallisuuden parantamiseksi.
Ennen kuin voit integroida kertakirjautumisen, sinun on ensin valittava sopiva kertakirjautumisratkaisu. Yleisiä vaihtoehtoja ovat OAuth2-pohjaiset ratkaisut (kuten Spring Security OAuth tai Spring Security + OAuth2 Client) ja integroitujen todennusviranomaisten käyttö (kuten Keycloak). Seuraavassa on esimerkkinä Spring Security + OAuth2 Client.
Spring Boot -projektissa voimme toteuttaa kertakirjautumistoiminnon määrittämällä Spring Securityn ja OAuth2 Clientin. Tässä on yksinkertainen konfigurointiesimerkki:
package cn.juwatech.taokua.system.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.oauth2.client.registration.ClientRegistration;
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
import org.springframework.security.oauth2.core.AuthorizationGrantType;
import org.springframework.security.oauth2.core.ClientAuthenticationMethod;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login()
.defaultSuccessUrl("/dashboard")
.and()
.logout()
.logoutSuccessUrl("/")
.permitAll();
}
@Bean
public ClientRegistrationRepository clientRegistrationRepository() {
return new InMemoryClientRegistrationRepository(githubClientRegistration());
}
private ClientRegistration githubClientRegistration() {
return ClientRegistration.withRegistrationId("github")
.clientId("your-client-id")
.clientSecret("your-client-secret")
.clientAuthenticationMethod(ClientAuthenticationMethod.BASIC)
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.redirectUriTemplate("{baseUrl}/login/oauth2/code/{registrationId}")
.scope("read:user")
.authorizationUri("https://github.com/login/oauth/authorize")
.tokenUri("https://github.com/login/oauth/access_token")
.userInfoUri("https://api.github.com/user")
.userNameAttributeName("id")
.clientName("GitHub")
.build();
}
}
Jos päätät käyttää integroitua varmentajaa, kuten Keycloakia, voit integroida sen seuraavasti:
Kun käyttäjät on määritetty projektissa, he voivat kirjautua sisään valtuustiedoillaan käyttämällä mitä tahansa sovellusta. Järjestelmä ohjaa käyttäjän automaattisesti varmenteen myöntäjälle todentamaan ja hankkimaan valtuutuksen ja ohjaa sitten takaisin alkuperäiseen sovellukseen.
Tässä artikkelissa kuvataan kertakirjautumisratkaisun integrointi Spring Boot -projektiin, tarjotaan yksinkertainen esimerkkimäärittely, joka perustuu OAuth2:een, ja mainitaan mahdollisuus integroida varmennekeskus. Näiden vaiheiden avulla kehittäjät voivat helposti toteuttaa turvallisia ja tehokkaita käyttäjien todennus- ja valtuutustoimintoja.
Micro-earning Taoke System 3.0:n toimittajan tuottaman tuotteen on oltava korkealaatuinen. Ilmoita lähde uusintapainossa!