Guest User

Untitled

a guest
Mar 28th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.72 KB | None | 0 0
  1. package com.core.newbie.model;
  2.  
  3. import javax.persistence.*;
  4. import java.util.Set;
  5.  
  6. public class User {
  7.  
  8. private Integer id;
  9.  
  10. private String userName;
  11.  
  12. private String password;
  13.  
  14. private Integer age;
  15.  
  16. @ManyToMany
  17. @JoinTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"),
  18. inverseJoinColumns = @JoinColumn(name = "role_id"))
  19. private Set<Role> roles;
  20.  
  21. public Integer getId() {
  22. return id;
  23. }
  24.  
  25. public void setId(final Integer id) {
  26. this.id = id;
  27. }
  28.  
  29. public String getUserName() {
  30. return userName;
  31. }
  32.  
  33. public void setUserName(final String userName) {
  34. this.userName = userName == null ? null : userName.trim();
  35. }
  36.  
  37. public String getPassword() {
  38. return password;
  39. }
  40.  
  41. public void setPassword(final String password) {
  42. this.password = password == null ? null : password.trim();
  43. }
  44.  
  45. public Integer getAge() {
  46. return age;
  47. }
  48.  
  49. public void setAge(final Integer age) {
  50. this.age = age;
  51. }
  52.  
  53. public Set<Role> getRoles() {
  54. return roles;
  55. }
  56.  
  57. public void setRoles(Set<Role> roles) {
  58. this.roles = roles;
  59. }
  60. }
  61.  
  62. package com.core.newbie.dao;
  63.  
  64. import com.core.newbie.model.User;
  65. import org.springframework.data.jpa.repository.JpaRepository;
  66.  
  67. public interface UserDao extends JpaRepository<User, Long> {
  68. User findByUsername(String username);
  69. }
  70.  
  71. package com.core.newbie.dao;
  72.  
  73. import com.core.newbie.model.Role;
  74. import com.core.newbie.model.User;
  75.  
  76. import org.springframework.data.jpa.repository.JpaRepository;
  77.  
  78. public interface RoleDao extends JpaRepository<Role, Integer> {
  79. }
  80.  
  81. package com.core.newbie.service;
  82.  
  83. import java.util.List;
  84.  
  85. import com.core.newbie.model.User;
  86.  
  87. public interface UserService {
  88. User getUserById(int userId);
  89.  
  90. User findByUsername(String username);
  91.  
  92. void save(User user);
  93.  
  94. List<User> getAll();
  95. }
  96.  
  97. package com.core.newbie.impl;
  98.  
  99. import com.core.newbie.dao.RoleDao;
  100. import com.core.newbie.dao.UserDao;
  101. import com.core.newbie.mapper.UserMapper;
  102. import com.core.newbie.model.Role;
  103. import com.core.newbie.model.User;
  104. import com.core.newbie.service.UserService;
  105.  
  106. import java.util.List;
  107.  
  108. import org.apache.ibatis.annotations.Select;
  109.  
  110. import java.util.HashSet;
  111. import java.util.Set;
  112.  
  113. import org.springframework.beans.factory.annotation.Autowired;
  114. import org.springframework.context.annotation.Bean;
  115. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  116. import org.springframework.security.crypto.password.PasswordEncoder;
  117. import org.springframework.stereotype.Service;
  118.  
  119. @Service("userService")
  120. public class UserServiceImpl implements UserService {
  121. @Autowired
  122. private UserMapper userMapper;
  123.  
  124. @Autowired
  125. private UserDao userDao;
  126.  
  127. @Autowired
  128. private RoleDao roleDao;
  129.  
  130. @Bean
  131. public PasswordEncoder passwordEncoder() {
  132. return new BCryptPasswordEncoder();
  133. }
  134.  
  135. @Autowired
  136. private PasswordEncoder bCryptPasswordEncoder;
  137.  
  138. @Override
  139. public User getUserById(final int userId) {
  140. return userMapper.selectByPrimaryKey(userId);
  141. }
  142.  
  143. @Override
  144. public void save(final User user) {
  145. user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
  146. Set<Role> roles = new HashSet<>();
  147. roles.add(roleDao.getOne(1L));
  148. user.setRoles(roles);
  149. userDao.save(user);
  150. }
  151.  
  152. @Override
  153. @Select("select * from n_user")
  154. public List<User> getAll() {
  155. return userMapper.findAll();
  156. }
  157.  
  158. @Override
  159. public User findByUsername(String username) {
  160. return userDao.findByUsername(username);
  161. }
  162. }
  163.  
  164. package com.core.newbie.service;
  165.  
  166. import com.core.newbie.dao.UserDao;
  167. import com.core.newbie.model.Role;
  168. import com.core.newbie.model.User;
  169. import org.springframework.beans.factory.annotation.Autowired;
  170. import org.springframework.security.core.GrantedAuthority;
  171. import org.springframework.security.core.authority.SimpleGrantedAuthority;
  172. import org.springframework.security.core.userdetails.UserDetails;
  173. import org.springframework.security.core.userdetails.UserDetailsService;
  174. import org.springframework.security.core.userdetails.UsernameNotFoundException;
  175. import org.springframework.transaction.annotation.Transactional;
  176.  
  177. import java.util.HashSet;
  178. import java.util.Set;
  179.  
  180. public class UserDetailsServiceImpl implements UserDetailsService {
  181.  
  182. @Autowired
  183. private UserDao userDao;
  184.  
  185. @Override
  186. @Transactional(readOnly = true)
  187. public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
  188. User user = userDao.findByUsername(username);
  189.  
  190. Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
  191.  
  192. for (Role role : user.getRoles()) {
  193. grantedAuthorities.add(new SimpleGrantedAuthority(role.getName()));
  194. }
  195. return new
  196. org.springframework.security.core.userdetails.User(user.getUsername(),
  197. user.getPassword(), grantedAuthorities);
  198. }
  199. }
  200.  
  201. package com.core.newbie.action;
  202.  
  203. import com.alibaba.fastjson.JSON;
  204. import com.core.newbie.model.User;
  205. import com.core.newbie.service.UserService;
  206. import org.apache.log4j.Logger;
  207. import org.junit.Test;
  208. import org.junit.runner.RunWith;
  209. import org.springframework.beans.factory.annotation.Autowired;
  210. import org.springframework.test.context.ContextConfiguration;
  211. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  212.  
  213. @RunWith(SpringJUnit4ClassRunner.class)
  214. @ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})
  215. public class UserActionTest {
  216. private static final Logger logger = Logger.getLogger(UserActionTest.class);
  217. private UserService userService;
  218.  
  219. @Autowired
  220. public void setUserService(final UserService userService) {
  221. this.userService = userService;
  222. }
  223.  
  224. public UserService getUserService() {
  225. return userService;
  226. }
  227.  
  228. @Test
  229. public void test1() {
  230. final User user = userService.getUserById(1);
  231. logger.info(JSON.toJSON(user));
  232. }
  233.  
  234. @Test
  235. public void test2() {
  236. final User user = new User();
  237. user.setId(112);
  238. user.setAge(14);
  239. user.setPassword("12");
  240. user.setUserName("derrick-2");
  241. userService.insetUser(user);
  242. logger.info(JSON.toJSON(user));
  243. }
  244. }
Add Comment
Please, Sign In to add comment