Spring Security Authentication&Authorization
Spring Security Authentication&Authorization
Steps:
1. Spring Initializr:
2. File Structure:
3. AutheAuthoApplication(Default):
package com.example.AutheAutho;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class AutheAuthoApplication {
SpringApplication.run(AutheAuthoApplication.class, args);
4. UserController:
package com.example.AutheAutho.controller;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@RestController
@GetMapping("/welcome")
@GetMapping("/user/userProfile")
@PreAuthorize("hasAuthority('ROLE_USER')")
@GetMapping("/admin/adminProfile")
@PreAuthorize("hasAuthority('ROLE_ADMIN')")
5. SecurityConfig:
package com.example.AutheAutho.security;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.*;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
@Configuration
@EnableWebSecurity
@EnableMethodSecurity
// User Creation
@Bean
// InMemoryUserDetailsManager
.password(encoder.encode("123"))
.roles("ADMIN", "USER")
.build();
.password(encoder.encode("123"))
.roles("USER")
.build();
// Password Encoding
@Bean