Authentication & Authorization
Steps:
1. Spring Initializr:
2. File Structure:
3. AutheAuthoApplication(Default):
package [Link];
import [Link];
import [Link];
@SpringBootApplication
public class AutheAuthoApplication {
public static void main(String[] args) {
[Link]([Link], args);
4. UserController:
package [Link];
import [Link];
import [Link].*;
@RestController
public class UserController {
@GetMapping("/welcome")
public String welcome() {
return "Welcome this endpoint is not secure";
@GetMapping("/user/userProfile")
@PreAuthorize("hasAuthority('ROLE_USER')")
public String userProfile() {
return "Welcome to User Profile";
@GetMapping("/admin/adminProfile")
@PreAuthorize("hasAuthority('ROLE_ADMIN')")
public String adminProfile() {
return "Welcome to Admin Profile";
5. SecurityConfig:
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link].*;
import [Link];
import [Link];
import [Link];
import [Link];
@Configuration
@EnableWebSecurity
@EnableMethodSecurity
public class SecurityConfig {
// User Creation
@Bean
public UserDetailsService userDetailsService(PasswordEncoder encoder) {
// InMemoryUserDetailsManager
UserDetails admin = [Link]("Amiya")
.password([Link]("123"))
.roles("ADMIN", "USER")
.build();
UserDetails user = [Link]("Ejaz")
.password([Link]("123"))
.roles("USER")
.build();
return new InMemoryUserDetailsManager(admin, user);
// Password Encoding
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();