SecurityContextholder.getContext (). Getauthentication (). GetCredentials () возвращает NULL после аутентификацииJAVA

Программисты JAVA общаются здесь
Anonymous
SecurityContextholder.getContext (). Getauthentication (). GetCredentials () возвращает NULL после аутентификации

Сообщение Anonymous »

Я создал простое приложение Spring Web MVC, и у меня есть одна проблема. После аутентификации я стараюсь получить объект аутентификации, и по какой -то причине его учетные данные являются нулевыми. < /p>

< /p>

В этом проекте у меня есть пользовательская аутентификация, которая выглядит как это: < /p>

@Component
public class CustomAuthenticationProvider implements AuthenticationProvider {

@Autowired
private UserService userService;

@Autowired
private RoleService roleService;

@PostConstruct
public void init() {
roleService.AddStandardRolesIfNeeded();
userService.AddUserWithAdminRoleIfNotExists("a");
}

public Authentication authenticate(Authentication authentication) throws AuthenticationException {

Object credentials = authentication.getCredentials();
if(!(credentials instanceof String)) {
return null;
}

String username = authentication.getName();
String password = credentials.toString(); //password isn't null here

User user = userService.findByUsernameAndPassword(username, password);

if(user == null) {
throw new BadCredentialsException("Authentication failed for " + username);
}

List authorities = new ArrayList();
for(Role role : user.getRoles()) {
authorities.add(new SimpleGrantedAuthority(role.getName()));
}

Authentication auth = new
UsernamePasswordAuthenticationToken(username, password, authorities);

return auth;
}

public boolean supports(Class authentication) {
return authentication.equals(UsernamePasswordAuthenticationToken.class);
}

}
< /code>

мне интересно, если это намеренно сделано в Spring Security или что мне что -то упускаю. < /p>

Подробнее здесь: https://stackoverflow.com/questions/534 ... ls-returns

Вернуться в «JAVA»