Merge pull request #14882 from Finniki/httpvswebsecurity

Httpvswebsecurity
This commit is contained in:
davidmartinezbarua 2023-10-24 14:44:14 -03:00 committed by GitHub
commit 29d0e4f04c
4 changed files with 82 additions and 2 deletions

View File

@ -15,6 +15,10 @@
<relativePath>../../parent-boot-2</relativePath>
</parent>
<properties>
<spring.security.version>5.8.4</spring.security.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
@ -49,6 +53,16 @@
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring.security.version}</version>
</dependency>
</dependencies>
<build>
@ -100,4 +114,4 @@
</profile>
</profiles>
</project>
</project>

View File

@ -0,0 +1,31 @@
package com.baeldung.httpsecurityvswebsecurity;
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;
@Configuration
@EnableWebSecurity
public class HttpSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// Given: HttpSecurity configured
http.authorizeRequests()
.antMatchers("/public/**").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
// When: Accessing specific URLs
// Then: Access is granted based on defined rules
}
}

View File

@ -0,0 +1,35 @@
package com.baeldung.httpsecurityvswebsecurity;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.userDetailsService(userDetailsService)
.passwordEncoder(new BCryptPasswordEncoder());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/")
.permitAll()
.anyRequest()
.authenticated()
.and()
.formLogin();
}
}

View File

@ -100,4 +100,4 @@
</profile>
</profiles>
</project>
</project>