2017-05-10 1 views
1

개발 중에 스프링 보안을 "세계"에 개방하고 싶습니다. jHipster에는 놀라운 생성기가 있지만 다소 혼란 스럽습니다. 편안한 통화를 위해 봄 보안을 어떻게 열 수 있습니까? enter image description herejHipster 스프링 부트 보안 열기

/** 
* Authenticate a user from the database. 
*/ 
@Component("userDetailsService") 
public class DomainUserDetailsService implements UserDetailsService { 

    private final Logger log = LoggerFactory.getLogger(DomainUserDetailsService.class); 

    private final UserRepository userRepository; 

    public DomainUserDetailsService(UserRepository userRepository) { 
     this.userRepository = userRepository; 
    } 

    @Override 
    @Transactional 
    public UserDetails loadUserByUsername(final String login) { 
     log.debug("Authenticating {}", login); 
     String lowercaseLogin = login.toLowerCase(Locale.ENGLISH); 
     Optional<User> userFromDatabase = userRepository.findOneWithAuthoritiesByLogin(lowercaseLogin); 
     return userFromDatabase.map(user -> { 
      if (!user.getActivated()) { 
       throw new UserNotActivatedException("User " + lowercaseLogin + " was not activated"); 
      } 
      List<GrantedAuthority> grantedAuthorities = user.getAuthorities().stream() 
        .map(authority -> new SimpleGrantedAuthority(authority.getName())) 
       .collect(Collectors.toList()); 
      return new org.springframework.security.core.userdetails.User(lowercaseLogin, 
       user.getPassword(), 
       grantedAuthorities); 
     }).orElseThrow(() -> new UsernameNotFoundException("User " + lowercaseLogin + " was not found in the " + 
     "database")); 
    } 
} 

답변

3

는 REST API에 액세스하는 모든 사용자를 허용 그런 다음 제한 할 수 있습니다 src/main/java/com/mycompany/myapp/config/SecurityConfiguration.java

 .antMatchers("/api/**").authenticated() 

 .antMatchers("/api/**").permitAll() 

에에있는 당신의 SecurityConfiguration.java에 다음 줄을 변경하려면 다음 주석 중 하나를 원한다면 특정 API 엔드 포인트를 사용하십시오.

 @Secured(AuthoritiesConstants.ADMIN) 

또는

 @PreAuthorize("hasRole('ROLE_USER')") 
관련 문제