ich diesen SpringSecurity ConfigUserDetailsService wird nie (Frühjahr Boot-Sicherheit) genannt
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsServiceImpl detailsService;
@Autowired
public void registerGlobalAuthentication(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(detailsService);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/index").access("hasRole('USER')");
http.userDetailsService(detailsService);
}
}
wenn ich öffnen index.html
Seite bekomme ich 403-Fehler haben. Es ist, weil Benutzer anonymous
ist. Aber ich möchte Benutzer überprüfen und Rollen und Details festlegen, bevor diese Seite geöffnet wird. Dazu schreibe ich diesen Service
@Service
public class UserDetailsServiceImpl implements UserDetailsService {
@Autowired
private HttpServletRequest request;
@Autowired
AuthService authService;
@Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
String ipAddress = request.getRemoteAddr();
AuthLkUser authLkUserByIp = authService.getAuthLkUserByIp(ipAddress);
if (authLkUserByIp == null) return null;
boolean b = authService.checkAuthLkUser(authLkUserByIp);
if (b) return null;
Set<GrantedAuthority> roles = new HashSet();
roles.add(new SimpleGrantedAuthority("USER"));
UserDetails userDetails = new org.springframework.security.core.userdetails.User(authLkUserByIp.getMsisdn(),
authLkUserByIp.getSubsId(), roles);
return userDetails;
}
}
Aber dieser Service wird nie aufgerufen.