Spring Security запрещается для всех URL-адресов после входа в систему - PullRequest
0 голосов
/ 26 мая 2020

Привет, я пытаюсь реализовать безопасность весенней загрузки, но у меня есть некоторые проблемы. После входа в систему появляется Запрещенная ошибка для всех URL-адресов в моем приложении. Я создаю класс, реализующий интерфейс UserDetails:

public class CustomUserDetail implements UserDetails {
private static final long serialVersionUID = 1L;
private User user;

Set<GrantedAuthority> authorities=null;

public User getUser() {
    return user;
}

public void setUser(User user) {
    this.user = user;
}

public Collection<? extends GrantedAuthority> getAuthorities() {
    return authorities;
}

public void setAuthorities(Set<GrantedAuthority> authorities)
{
    this.authorities=authorities;
}

public String getPassword() {
    return user.getPassword();
}

public String getUsername() {
    return user.getUsername();
}

public boolean isAccountNonExpired() {
    return true;
}

public boolean isAccountNonLocked() {
    return true;
}

public boolean isCredentialsNonExpired() {
    return true;
}

public boolean isEnabled() {
    return true;
}
}

Это мой класс конфигурации безопасности.

@EnableWebSecurity
public class CustomSecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
@Qualifier("loginServiceImpl")
UserDetailsService userDetailsService;

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    // set you configuration on th auth object
    auth.userDetailsService(userDetailsService);
}

@Bean
public PasswordEncoder getPasswordEncoder() {
    // set configuration for password encoder
    return NoOpPasswordEncoder.getInstance();
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    // set authorization configuration
    http.authorizeRequests()
            .antMatchers("/", "/home").hasAnyRole("ROLE_ADMIN", "ROLE_USER")
            .antMatchers("/login**", "/resources/**", "/js/**", "/css/**").permitAll()
            .and()
            .formLogin();
}
}

и моя служба

@Service
public class LoginServiceImpl implements UserDetailsService {

@Autowired
private UserDao userDao;

public CustomUserDetail loadUserByUsername(String name) throws UsernameNotFoundException, 
DataAccessException {
    User domainUser = userDao.findByUserName(name);

    if (domainUser == null)
        throw new UsernameNotFoundException("User not found.");

    Set<GrantedAuthority> authorities = new HashSet<GrantedAuthority>();

    authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));

    CustomUserDetail customUserDetail = new CustomUserDetail();
    customUserDetail.setUser(domainUser);
    customUserDetail.setAuthorities(authorities);

    return customUserDetail;

}
}

Я удаляю несколько дополнительных URL-адресов и роли для теста, и появляется запрещенная ошибка для "ROLE_ADMIN" и "/home"("/").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...