Rámec Spring Boot obsahuje modul s názvom Spring Security. Pomáha zaistiť prostriedky webových aplikácií pred neoprávneným prístupom s minimálnym kódovaním.


Poskytuje autentifikáciu, autorizáciu a mnoho ďalších funkcií pre jednoduché aplikácie na podnikovej úrovni. Ak je autentifikácia úspešná, je prístup k prostriedku. V opačnom prípade je užívateľ obmedzený.

Spring Security je otvorená platforma. Pre vývojára je celkom jednoduché napísať svoj vlastný autentifikačný mechanizmus. Mnoho vývojárov používajúcich Spring Security ho musí integrovať do svojich vlastných systémov, ktoré nespĺňajú žiadne konkrétne bezpečnostné normy. V tomto prípade je jarná bezpečnosť flexibilná pri integrácii.

predpoklady

  • IDE napr. IntelliJ IDEA
  • JDK 1,8 alebo novší
  • Jarná aplikácia MVC s prihlasovacím formulárom so zoznamom oprávnených používateľov.
  • Zostavený systém stupňa 4 alebo novšieho alebo Maven 3.2 alebo novšieho

Krok 1: Aktualizujte súbor build.gradle alebo POM.xml

Pre systém zostavenia Gradle musíte pridať závislosť, aby jarné zabezpečenie fungovalo. Kód, ktorý musíte pridať pod „závislosti“

závislosti {
kompilácie ("org.springframework.boot: jar-boot-štartér-security")
}

Ak váš projekt používa systém Maven build, pridajte nasledujúci riadok kódu do oddielu v POM.xml

org.springframework.boot
spring-boot-štartér-security

Krok 2: Nastavte bezpečnostnú konfiguráciu v aplikácii

V tomto kroku vytvoríte triedu konfigurácie. Bude rozšírená o WebSecurityConfigurerAdapter a prepíšete jej metódy configure () a userDetailsService (). Metóda configure () bude obsahovať kód pre dva typy aplikačných ciest, pre ktoré sa vyžaduje zabezpečenie a pre ktoré sa nevyžaduje zabezpečenie..

Metóda userDetailsService () sa používa na uloženie používateľa v pamäti. Užívateľ môže autorizovať pomocou poverení kódovaných touto metódou.

Nižšie je uvedený kompletný konfiguračný súbor s názvom WebSecurityConfiguration.java

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotationKonfigurácia;
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.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@Configuration
@EnableWebSecurity
public class WebSecurityConfig rozširuje WebSecurityConfigurerAdapter {
@Override
Chránená neplatná konfigurácia (HttpSecurity http) vyvolá výnimku {
http
.authorizeRequests ()
.antMatchers ("/", "/Hlavná") .PermitAll ()
.anyRequest (). overený ()
.a ()
.formLogin ()
.loginPage ("/ UserLogin")
.permitAll ()
.a ()
.odhlásiť sa()
.permitAll ();
}

@Bean
@Override
public UserDetailsService userDetailsService () {
UserDetails user =
User.withDefaultPasswordEncoder ()
.užívateľské meno ("užívateľ")
.heslo ("heslo")
.role ("USER")
.zostavení ();
vrátiť nový InMemoryUserDetailsManager (užívateľ);
}
}

"/" a "/Hlavná" cesty sú nakonfigurované tak, aby nevyžadovali žiadnu autentifikáciu. Všetky ostatné cesty musia byť overené.

Pokiaľ ide o metódu userDetailsService (), nastavuje ukladací priestor používateľov v pamäti s jedným používateľom. Tomuto používateľovi je pridelené užívateľské meno "užívateľ", heslo pre "heslo", a úloha "USER".

Krok 4: Vytvorte prihlasovací formulár na prístup k svojej webovej aplikácii

Po zabezpečení sa aplikuje na cestu aplikácie, je čas sa presvedčiť, či fungujú. Vytvoríte prihlasovaciu stránku, ktorá vezme užívateľské meno a heslo a odošle ich na „hlavnú“ URL, ktorá je vstupnou stránkou aplikácie. Ak sú prihlasovacie údaje správne, bude mať používateľ prístup k akejkoľvek adrese URL aplikácie. Nižšie je uvedené jednoduché zostavenie prihlasovacej stránky v HTML. Súbor je main.html.

Hlavná stránka

vitajte

Meno používateľa:
heslo:

Používateľské meno alebo heslo je nesprávne, nemáte oprávnenie na prihlásenie. Vďaka.

Formulár vo vyššie uvedenom súbore odošle používateľské meno a heslo do hlavnej adresy URL. Po predložení jarná bezpečnosť vstúpi do činnosti a vykoná príslušnú akciu na základe poverovacích údajov.

Toto zobrazenie HTML pridáte do triedy kontrolérov MVC, aby sa spojilo s funkciou.

verejné neplatné addViewControllers (register ViewControllerRegistry) {
registry.addViewController ("/Hlavná") .SetViewName ("Domov");
}

Krok 4: Otestujte funkciu

Po prístupe na hlavnú webovú adresu dostane používateľ nasledujúcu stránku.

Po úspešnom prihlásení bude mať užívateľ prístup k všetkým zdrojom (URL) aplikácie.

záver

Ak chcete povoliť funkciu Spring Security v aplikácii Spring Boot, musíte do závislosti na použitom systéme buildu pridať závislosť do POM projektu alebo do súboru build.gradle. Potom musíte vytvoriť konfiguračný súbor. Bude obsahovať adresy URL, ktoré vyžadujú overenie a ktoré nie. Potom budete potrebovať prihlasovaciu stránku, aby ste mohli zadať poverenia Spring Security, aby sa mohla rozhodnúť, či povolí používateľovi prihlásiť sa alebo nie. Budete musieť pridať prihlasovaciu stránku do ovládača aplikácie.

Vyskúšajte tieto 3 najvýznamnejšie služby hostenia jazyka Java:

Hosting A2

Vyvolávacia cena:
$ 3,92


Spoľahlivosť
9.3


stanovenie ceny
9.0


Užívatelsky prívetivý
9.3


podpora
9.3


Vlastnosti
9.3

Prečítajte si recenzie

Navštívte A2 Hosting

Heficed

Vyvolávacia cena:
$ 15.00


Spoľahlivosť
8.3


stanovenie ceny
8.7


Užívatelsky prívetivý
8.5


podpora
8.3


Vlastnosti
8.5

Prečítajte si recenzie

Navštívte Heficed

HostUpon

Vyvolávacia cena:
$ 2,95


Spoľahlivosť
9.4


stanovenie ceny
8.8


Užívatelsky prívetivý
9.1


podpora
9.4


Vlastnosti
9.0

Prečítajte si recenzie

Navštívte HostUpon

Súvisiace články s návodmi

  • Ako vytvoriť dynamickú webovú aplikáciu s Django
    expert
  • Ako nainštalovať Apache Cassandra na Ubuntu 18.04 VPS alebo na vyhradený server
    stredná
  • Ako nainštalovať Java na CentOS 7?
    stredná
  • Ako nainštalovať a nakonfigurovať Apache Tomcat na serveri Ubuntu 18.04 VPS alebo na vyhradenom serveri
    stredná
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me