Commit 5a78881f authored by xiaozhe.chen's avatar xiaozhe.chen

添加初始版本客服系统代码

parent 49f77d5f
package cn.quantgroup.customer.config.http.security;
import cn.quantgroup.customer.constant.Constant;
import cn.quantgroup.customer.util.PwdUtil;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
@Component("passwordEncoder")
public class IPasswordEncoder implements PasswordEncoder {
@Override
public String encode(CharSequence rawPassword) {
return PwdUtil.MD5(rawPassword.toString().toLowerCase() + Constant.PASSWORD_SALT);
}
@Override
public boolean matches(CharSequence rawPassword, String encodedPassword) {
return encodedPassword.equals(PwdUtil.MD5(rawPassword.toString().toLowerCase() + Constant.PASSWORD_SALT));
}
}
......@@ -2,28 +2,34 @@ package cn.quantgroup.customer.config.http.security;
import cn.quantgroup.customer.constant.Constant;
import cn.quantgroup.customer.service.IUserService;
import cn.quantgroup.customer.util.PwdUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.session.HttpSessionEventPublisher;
import org.springframework.util.StringUtils;
import org.springframework.web.cors.CorsUtils;
@Slf4j
@EnableWebSecurity
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true, jsr250Enabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
private final IUserService userService;
private final PasswordEncoder passwordEncoder;
@Autowired
public WebSecurityConfig(IUserService userService) {
public WebSecurityConfig(IUserService userService, PasswordEncoder passwordEncoder) {
this.userService = userService;
this.passwordEncoder = passwordEncoder;
}
......@@ -44,20 +50,13 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userService).passwordEncoder(new PasswordEncoder() {
@Override
public String encode(CharSequence rawPass) {
return PwdUtil.MD5(rawPass.toString().toLowerCase() + Constant.PASSWORD_SALT);
}
auth.userDetailsService(userService).passwordEncoder(passwordEncoder);
}
@Override
public boolean matches(CharSequence rawPass, String password) {
if (StringUtils.isEmpty(password)) {
return false;
}
return password.equals(PwdUtil.MD5(rawPass.toString().toLowerCase() + Constant.PASSWORD_SALT));
}
});
@Override
public UserDetailsService userDetailsServiceBean() {
return userService;
}
@Bean
......
......@@ -2,7 +2,7 @@ package cn.quantgroup.customer.rest;
import cn.quantgroup.customer.entity.User;
import cn.quantgroup.customer.rest.param.LoginParam;
import cn.quantgroup.customer.rest.vo.SimpleUserVo;
import cn.quantgroup.customer.rest.vo.AuthUserVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
......@@ -40,8 +40,8 @@ public class UserRest {
if (authentication != null && authentication.isAuthenticated()) {
User principal = (User) authentication.getPrincipal();
SimpleUserVo simpleUserVo = SimpleUserVo.parse(principal);
return JsonResult.buildSuccessResult(LOGIN_SUCCESS, simpleUserVo);
AuthUserVo authUserVo = AuthUserVo.parse(principal);
return JsonResult.buildSuccessResult(LOGIN_SUCCESS, authUserVo);
}
return JsonResult.buildErrorStateResult(LOGIN_FAIL, null);
}
......
......@@ -4,6 +4,7 @@ import cn.quantgroup.customer.entity.User;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.security.core.GrantedAuthority;
import java.util.List;
......@@ -12,15 +13,17 @@ import java.util.stream.Collectors;
@Getter
@Setter
@Builder
public class SimpleUserVo {
public class AuthUserVo {
private String username;
private List<String> authorities;
public static SimpleUserVo parse(User user) {
SimpleUserVo.SimpleUserVoBuilder builder = SimpleUserVo.builder();
public static AuthUserVo parse(User user) {
AuthUserVo.AuthUserVoBuilder builder = AuthUserVo.builder();
builder.username(user.getUsername());
List<String> authorityList = user.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList());
builder.authorities(authorityList);
if (CollectionUtils.isNotEmpty(user.getAuthorities())) {
List<String> authorityList = user.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList());
builder.authorities(authorityList);
}
return builder.build();
}
}
......@@ -10,14 +10,12 @@ import cn.quantgroup.customer.repo.UserRepo;
import cn.quantgroup.customer.repo.UserRoleRepo;
import cn.quantgroup.customer.service.IUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Service("userService")
......@@ -44,6 +42,7 @@ public class UserServiceImpl implements IUserService {
throw new UsernameNotFoundException("user: " + userName + " do not exist!");
}
/*
List<UserRole> userRoles = findUserRoleByUserId(user.getId());
if (CollectionUtils.isNotEmpty(userRoles)) {
List<RoleAuthority> roleAuthorityList = findRoleAuthorityByRoleIds(
......@@ -56,6 +55,7 @@ public class UserServiceImpl implements IUserService {
user.setAuthorities(authorities);
}
}
*/
return user;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment