Advertisement
Guest User

Untitled

a guest
Mar 15th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.54 KB | None | 0 0
  1. package doctorsoffice.Patient;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.http.HttpHeaders;
  5. import org.springframework.http.HttpStatus;
  6. import org.springframework.http.ResponseEntity;
  7. import org.springframework.web.bind.annotation.PostMapping;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RequestParam;
  10. import org.springframework.web.bind.annotation.RestController;
  11.  
  12. @RestController
  13. @RequestMapping("/registers")
  14. public class UserController {
  15.     UserService userService;
  16.  
  17.     @Autowired
  18.     public UserController(UserService userService) {
  19.         this.userService = userService;
  20.     }
  21.  
  22.     @PostMapping
  23.     public ResponseEntity<UserDto> registerUser(@RequestParam String email, @RequestParam String password, @RequestParam long pesel,
  24.                                                 @RequestParam int age, @RequestParam String name, @RequestParam String surname) {
  25.         UserDto newUser = userService.registerUser(email, password, pesel, name, surname, age);
  26. //        HttpHeaders headers = new HttpHeaders();
  27. //        headers.add("Location", "/hello");
  28. //        //return new ResponseEntity<UserDto>(newUser, HttpStatus.CREATED);
  29.         HttpHeaders headers = new HttpHeaders();
  30.         headers.add("Location", "/hello");
  31.         return new ResponseEntity<>(headers, HttpStatus.FOUND);
  32.  
  33.     }
  34. }
  35.  
  36.  
  37. ******************************************************************************************************
  38. package doctorsoffice.Security;
  39.  
  40. import org.springframework.security.core.Authentication;
  41. import org.springframework.security.core.context.SecurityContextHolder;
  42. import org.springframework.web.bind.annotation.GetMapping;
  43. import org.springframework.web.bind.annotation.RequestMapping;
  44. import org.springframework.web.bind.annotation.RestController;
  45.  
  46. @RestController
  47.  
  48. public class LoginController {
  49.  
  50.     @GetMapping("/hello")
  51.     public String helllo() {
  52.         Authentication auth = SecurityContextHolder.getContext().getAuthentication();
  53.         return auth.getName();
  54.     }
  55. }
  56.  
  57. *************************************************************************************************************************
  58. package doctorsoffice.Security;
  59.  
  60. import doctorsoffice.Patient.UserDetailServiceImpl;
  61. import org.springframework.beans.factory.annotation.Autowired;
  62. import org.springframework.context.annotation.Bean;
  63. import org.springframework.context.annotation.Configuration;
  64. import org.springframework.http.HttpStatus;
  65. import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
  66. import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
  67. import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  68. import org.springframework.security.config.annotation.web.builders.WebSecurity;
  69. import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
  70. import org.springframework.security.core.userdetails.UserDetailsService;
  71. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  72. import org.springframework.security.crypto.password.PasswordEncoder;
  73.  
  74. @Configuration
  75. public class SecurityConfig extends WebSecurityConfigurerAdapter {
  76.     @Override
  77.     protected void configure(HttpSecurity http) throws Exception {
  78.         http.csrf().disable();
  79.  
  80.         http.authorizeRequests()
  81.                 .antMatchers("/*.html").permitAll()
  82.                 .anyRequest().permitAll();
  83.  
  84.          //http.httpBasic();
  85.  
  86.         http
  87.                 .formLogin()
  88.                 .loginPage("/users/login")
  89.                 .failureHandler((request, response, exception) -> response.sendError(HttpStatus.BAD_REQUEST.value(),
  90.                         "Username or password invalid"))
  91.                 .usernameParameter("email")
  92.                 .passwordParameter("password")
  93.                 .defaultSuccessUrl("/hello").permitAll();
  94.         http
  95.                 .logout()
  96.                 .logoutUrl("/user/logout")
  97.                 .invalidateHttpSession(true)
  98.                 .logoutSuccessUrl("/hello")
  99.                 .permitAll();
  100.     }
  101.  
  102.  
  103.     @Bean
  104.     public PasswordEncoder passwordEncoder() {
  105.         return new BCryptPasswordEncoder();
  106.     }
  107.  
  108.     @Autowired
  109.     public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
  110.         auth.inMemoryAuthentication()
  111.                 .withUser("admin").password("pass").roles("ADMIN");
  112.     }
  113.  
  114.     @Override
  115.     @Bean
  116.     protected UserDetailsService userDetailsService() {
  117.         return new UserDetailServiceImpl();
  118.     }
  119.  
  120. //    @Override
  121. //    public void configure(WebSecurity web) throws Exception {
  122. //        web.ignoring().antMatchers("/v2/api-docs", "/configuration/ui", "/swagger-resources",
  123. //                "/configuration/security", "/swagger-ui.html", "/webjars/**");
  124. //
  125. //    }
  126. }
  127.  
  128.  
  129. ***************************************************************************************************************************************
  130.  
  131. <!DOCTYPE html>
  132. <html>
  133. <head>
  134.     <meta charset="UTF-8">
  135.     <title>Login</title>
  136. </head>
  137. <body>
  138. <form action="/users/login" method="post">
  139.     <div>Email : <input type="text" name="email"/></div>
  140.     <div>Password: <input type="password" name="password"/></div>
  141.     <div><input type="submit" value="Sign in"/></div>
  142. </form>
  143. </body>
  144. </html>
  145.  
  146. ************************************************************************************
  147.  
  148. package doctorsoffice.Patient;
  149.  
  150. import doctorsoffice.common.LoginAlreadyInUseException;
  151. import org.springframework.beans.factory.annotation.Autowired;
  152. import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
  153. import org.springframework.security.core.Authentication;
  154. import org.springframework.security.core.context.SecurityContext;
  155. import org.springframework.security.core.context.SecurityContextHolder;
  156. import org.springframework.security.crypto.password.PasswordEncoder;
  157. import org.springframework.stereotype.Service;
  158.  
  159. import javax.transaction.Transactional;
  160. import java.util.Collections;
  161.  
  162. @Service
  163. @Transactional
  164. public class UserServiceImpl implements UserService {
  165.     private UserRepository userRepository;
  166.     private UserMapper userMapper;
  167.     private PasswordEncoder passwordEncoder;
  168.  
  169.     @Autowired
  170.     public UserServiceImpl(UserRepository userRepository, UserMapper userMapper, PasswordEncoder passwordEncoder) {
  171.         this.userRepository = userRepository;
  172.         this.userMapper = userMapper;
  173.         this.passwordEncoder = passwordEncoder;
  174.     }
  175.  
  176.     @Override
  177.     public UserDto registerUser(String email, String password, Long pesel, String name, String surname, int age) {
  178.         if(userRepository.existsByEmail(email)){
  179.             throw new LoginAlreadyInUseException(email);
  180.         }
  181.         User user = new User();
  182.         user.setAge(age);
  183.         user.setEmail(email);
  184.         user.setName(name);
  185.         user.setSurname(surname);
  186.         user.setPassword(passwordEncoder.encode(password));
  187.         user.setPesel(pesel);
  188.         user.setUserRole(UserRoles.ROLE_USER);
  189.         userRepository.save(user);
  190.         SecurityContext ctx = SecurityContextHolder.getContext();
  191.         Authentication auth =
  192.                 new UsernamePasswordAuthenticationToken(user, null, Collections.emptyList());
  193.         ctx.setAuthentication(auth);
  194.  
  195.         return userMapper.toUserDto(user);
  196.  
  197.     }
  198. }
  199.  
  200. *****************************************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement