SpringBoot: add user security
This commit is contained in:
		
							parent
							
								
									db3cf0ee29
								
							
						
					
					
						commit
						fa2e4b0669
					
				@ -16,12 +16,13 @@ repositories {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dependencies {
 | 
			
		||||
	//implementation 'org.springframework.boot:spring-boot-starter-security'
 | 
			
		||||
	implementation 'org.springframework.boot:spring-boot-starter-security'
 | 
			
		||||
	implementation 'org.springframework.boot:spring-boot-starter-web'
 | 
			
		||||
	implementation 'org.springframework.boot:spring-boot-starter-webflux'
 | 
			
		||||
	implementation 'org.apache.httpcomponents.client5:httpclient5:5.2.1'
 | 
			
		||||
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
 | 
			
		||||
	testImplementation 'io.projectreactor:reactor-test'
 | 
			
		||||
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
 | 
			
		||||
 | 
			
		||||
	//testImplementation 'org.springframework.security:spring-security-test'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
package djmil.cordacheckers;
 | 
			
		||||
 | 
			
		||||
import java.security.Principal;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
@ -26,4 +27,14 @@ public class ApiController {
 | 
			
		||||
        return ResponseEntity.ok(joke);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 
 | 
			
		||||
     * @return a Json list of active games
 | 
			
		||||
     */
 | 
			
		||||
    @GetMapping("/api/activegames")
 | 
			
		||||
    public ResponseEntity<String> dashboard(Principal principal) {
 | 
			
		||||
 | 
			
		||||
        return ResponseEntity.ok("{ \"ActiveGames\" : [\"game\", \"GAME\", \""+principal.getName()+ "\" ] }" );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,38 @@
 | 
			
		||||
package djmil.cordacheckers;
 | 
			
		||||
 | 
			
		||||
import org.springframework.context.annotation.Bean;
 | 
			
		||||
import org.springframework.context.annotation.Configuration;
 | 
			
		||||
 | 
			
		||||
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.crypto.bcrypt.BCryptPasswordEncoder;
 | 
			
		||||
import org.springframework.security.crypto.password.PasswordEncoder;
 | 
			
		||||
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
 | 
			
		||||
 | 
			
		||||
@Configuration
 | 
			
		||||
public class SecurityConfig {
 | 
			
		||||
 | 
			
		||||
    @Bean
 | 
			
		||||
    PasswordEncoder passwordEncoder() {
 | 
			
		||||
        return new BCryptPasswordEncoder();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Bean
 | 
			
		||||
    UserDetailsService hardcodedCordaUsers(PasswordEncoder passwordEncoder) {
 | 
			
		||||
        User.UserBuilder users = User.builder();
 | 
			
		||||
	
 | 
			
		||||
        UserDetails alice = users
 | 
			
		||||
            .username("alice")
 | 
			
		||||
            .password(passwordEncoder.encode("qaz123"))
 | 
			
		||||
            .build();
 | 
			
		||||
 | 
			
		||||
        UserDetails bob = users
 | 
			
		||||
            .username("bob")
 | 
			
		||||
            .password(passwordEncoder.encode("qaz123"))
 | 
			
		||||
            .build();
 | 
			
		||||
        
 | 
			
		||||
        return new InMemoryUserDetailsManager(alice, bob);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user