Fix Server-example Unknown user (#1446)

* Feature: server add Ldap user authentication

* Fix Server-example Unknown user

* Remove RFC7230Config.class
pull/1448/head
Pan_Yujie 2 years ago committed by GitHub
parent ff6c3559c3
commit 4539c352a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -28,7 +28,6 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.ConfigurableEnvironment;
import java.util.Map; import java.util.Map;
import java.util.Objects;
/** /**
* Before check configuration. * Before check configuration.

@ -17,13 +17,19 @@
package cn.hippo4j.auth.security; package cn.hippo4j.auth.security;
import cn.hippo4j.auth.model.biz.user.LoginUser;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.springframework.expression.AccessException; import org.springframework.expression.AccessException;
import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/** /**
* Auth manager. * Auth manager.
@ -36,6 +42,8 @@ public class AuthManager {
private final AuthenticationManager authenticationManager; private final AuthenticationManager authenticationManager;
private final UserDetailsService userDetailsService;
/** /**
* Resolve token from user. * Resolve token from user.
* *
@ -47,9 +55,11 @@ public class AuthManager {
@SneakyThrows @SneakyThrows
public String resolveTokenFromUser(String userName, String rawPassword) { public String resolveTokenFromUser(String userName, String rawPassword) {
try { try {
UsernamePasswordAuthenticationToken authenticationToken = HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
new UsernamePasswordAuthenticationToken(userName, rawPassword); LoginUser loginUser = new LoginUser();
authenticationManager.authenticate(authenticationToken); loginUser.setPassword(rawPassword);
request.setAttribute("loginUser", loginUser);
UserDetails userDetails = userDetailsService.loadUserByUsername(userName);
} catch (AuthenticationException e) { } catch (AuthenticationException e) {
throw new AccessException("Unknown user."); throw new AccessException("Unknown user.");
} }

@ -24,6 +24,7 @@ import cn.hippo4j.auth.model.biz.user.LoginUser;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Primary;
import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
@ -46,6 +47,7 @@ import java.util.Set;
*/ */
@Slf4j @Slf4j
@Service @Service
@Primary
public class UserDetailsServiceImpl implements UserDetailsService { public class UserDetailsServiceImpl implements UserDetailsService {
@Value("${hippo4j.core.auth.enabled:true}") @Value("${hippo4j.core.auth.enabled:true}")

Loading…
Cancel
Save