Changeset 9dd526f for sources/app/src/main/java/parkup/configs
- Timestamp:
- 02/02/22 14:15:35 (2 years ago)
- Branches:
- master
- Children:
- df4089c
- Parents:
- 9ff45d6
- Location:
- sources/app/src/main/java/parkup/configs
- Files:
-
- 5 added
- 4 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
sources/app/src/main/java/parkup/configs/RegistrationServiceRP.java
r9ff45d6 r9dd526f 3 3 import org.springframework.beans.factory.annotation.Autowired; 4 4 import org.springframework.stereotype.Service; 5 import parkup.configs.email.EmailSe nder;5 import parkup.configs.email.EmailService; 6 6 import parkup.configs.email.EmailValidator; 7 import parkup.configs.email.Mail; 7 8 import parkup.configs.token.ConfirmationTokenRP; 8 9 import parkup.configs.token.ConfirmationTokenService; 9 import parkup.entities.Regist riranParkirac;10 import parkup.services.Regist riranParkiracService;10 import parkup.entities.RegisteredUser; 11 import parkup.services.RegisteredUserService; 11 12 12 13 import javax.transaction.Transactional; … … 15 16 @Service 16 17 public class RegistrationServiceRP { 17 private final Regist riranParkiracService registriranParkiracService;18 private final RegisteredUserService registeredUserService; 18 19 private final EmailValidator emailValidator; 19 20 private final ConfirmationTokenService confirmationTokenService; 20 private final EmailSe nder emailSender;21 private final EmailService emailService; 21 22 22 23 @Autowired 23 public RegistrationServiceRP(Regist riranParkiracService registriranParkiracService, EmailValidator emailValidator,24 ConfirmationTokenService confirmationTokenService, EmailSe nder emailSender) {25 this.regist riranParkiracService = registriranParkiracService;24 public RegistrationServiceRP(RegisteredUserService registeredUserService, EmailValidator emailValidator, 25 ConfirmationTokenService confirmationTokenService, EmailService emailService) { 26 this.registeredUserService = registeredUserService; 26 27 this.emailValidator = emailValidator; 27 28 this.confirmationTokenService = confirmationTokenService; 28 this.emailSe nder = emailSender;29 this.emailService = emailService; 29 30 } 30 31 31 32 public String register(RegistrationRequest request) { 33 if (request.getEmail() == null || request.getEmail().isEmpty()) 34 throw new IllegalArgumentException("Missing email"); 32 35 boolean isValidEmail = emailValidator. 33 36 test(request.getEmail()); … … 37 40 } 38 41 39 String token = regist riranParkiracService.signUpRegistriranParkirac(40 new Regist riranParkirac(42 String token = registeredUserService.signUpRegistriranParkirac( 43 new RegisteredUser( 41 44 request.getFirstName(), 42 45 request.getLastName(), … … 48 51 49 52 String link = "http://localhost:8080/registriranParkirac/registration/confirm?token=" + token; 50 emailSender.send( 51 request.getEmail(), 52 buildEmail(request.getFirstName(), link)); 53 53 Mail mail = new Mail(); 54 mail.setMailTo(request.getEmail()); 55 mail.setMailFrom("noreply_explore_buddy@gmail.com"); 56 mail.setMailSubject("Account confirmation"); 57 mail.setMailContent(buildEmail(request.getEmail(), link)); 58 emailService.sendEmail(mail); 54 59 return token; 55 60 } … … 74 79 confirmationTokenService.setConfirmedAtRP(token); 75 80 76 regist riranParkiracService.enableRegistriranParkirac(confirmationTokenRP.getRegistriranParkirac().getEmail());81 registeredUserService.enableRegistriranParkirac(confirmationTokenRP.getRegistriranParkirac().getEmail()); 77 82 return "confirmed"; 78 83 } -
sources/app/src/main/java/parkup/configs/email/EmailService.java
r9ff45d6 r9dd526f 1 1 package parkup.configs.email; 2 2 3 import org.slf4j.Logger; 4 import org.slf4j.LoggerFactory; 3 import org.springframework.beans.factory.annotation.Autowired; 5 4 import org.springframework.mail.javamail.JavaMailSender; 6 5 import org.springframework.mail.javamail.MimeMessageHelper; 7 import org.springframework.scheduling.annotation.Async;8 6 import org.springframework.stereotype.Service; 9 7 10 8 import javax.mail.MessagingException; 9 import javax.mail.internet.InternetAddress; 11 10 import javax.mail.internet.MimeMessage; 11 import java.io.UnsupportedEncodingException; 12 12 13 @Service 14 public class EmailService implements EmailSender{13 @Service("mailService") 14 public class EmailService implements MailService { 15 15 16 private final static Logger LOGGER = LoggerFactory.getLogger(EmailService.class);17 private finalJavaMailSender mailSender;16 @Autowired 17 JavaMailSender mailSender; 18 18 19 public EmailService(JavaMailSender mailSender) { 20 this.mailSender = mailSender; 19 public void sendEmail(Mail mail) { 20 MimeMessage mimeMessage = mailSender.createMimeMessage(); 21 22 try { 23 24 MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); 25 26 mimeMessageHelper.setSubject(mail.getMailSubject()); 27 mimeMessageHelper.setFrom(new InternetAddress(mail.getMailFrom(), "parkUp.com")); 28 mimeMessageHelper.setTo(mail.getMailTo()); 29 mimeMessageHelper.setText(mail.getMailContent(), true); 30 31 mailSender.send(mimeMessageHelper.getMimeMessage()); 32 33 } catch (MessagingException | UnsupportedEncodingException e) { 34 e.printStackTrace(); 35 } 21 36 } 22 37 23 @Override24 @Async25 public void send(String to, String email) {26 try {27 MimeMessage mimeMessage = mailSender.createMimeMessage();28 MimeMessageHelper helper =29 new MimeMessageHelper(mimeMessage, "utf-8");30 helper.setText(email, true);31 helper.setTo(to);32 helper.setSubject("Confirm your email");33 helper.setFrom("parkup@gmail.com");34 mailSender.send(mimeMessage);35 } catch (MessagingException e) {36 LOGGER.error("failed to send email", e);37 throw new IllegalStateException("failed to send email");38 }39 }40 38 } 41 -
sources/app/src/main/java/parkup/configs/email/EmailValidator.java
r9ff45d6 r9dd526f 1 1 package parkup.configs.email; 2 2 3 3 4 import org.springframework.stereotype.Service; 4 5 5 6 import java.util.function.Predicate; 7 import java.util.regex.Pattern; 6 8 7 9 @Service … … 9 11 @Override 10 12 public boolean test(String s) { 11 //todo12 return true;13 String regexPattern = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$"; 14 return Pattern.compile(regexPattern).matcher(s).matches(); 13 15 } 14 16 } -
sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRP.java
r9ff45d6 r9dd526f 1 1 package parkup.configs.token; 2 2 3 import parkup.entities.Regist riranParkirac;3 import parkup.entities.RegisteredUser; 4 4 5 5 import javax.persistence.*; … … 37 37 @JoinColumn(nullable = false, name = "registriranParkirac_id") 38 38 //many confirmation tokens to one registriranParkirac 39 private Regist riranParkirac registriranParkirac;39 private RegisteredUser registeredUser; 40 40 41 41 public ConfirmationTokenRP() {} 42 42 43 public ConfirmationTokenRP(int id, String token, LocalDateTime createdAt, LocalDateTime expiresAt, Regist riranParkirac registriranParkirac) {43 public ConfirmationTokenRP(int id, String token, LocalDateTime createdAt, LocalDateTime expiresAt, RegisteredUser registeredUser) { 44 44 this.id = id; 45 45 this.token = token; 46 46 this.createdAt = createdAt; 47 47 this.expiresAt = expiresAt; 48 this.regist riranParkirac = registriranParkirac;48 this.registeredUser = registeredUser; 49 49 } 50 50 51 public ConfirmationTokenRP(String token, LocalDateTime createdAt, LocalDateTime expiresAt, Regist riranParkirac registriranParkirac) {51 public ConfirmationTokenRP(String token, LocalDateTime createdAt, LocalDateTime expiresAt, RegisteredUser registeredUser) { 52 52 this.token = token; 53 53 this.createdAt = createdAt; 54 54 this.expiresAt = expiresAt; 55 this.regist riranParkirac = registriranParkirac;55 this.registeredUser = registeredUser; 56 56 } 57 57 … … 96 96 } 97 97 98 public Regist riranParkiracgetRegistriranParkirac() {99 return regist riranParkirac;98 public RegisteredUser getRegistriranParkirac() { 99 return registeredUser; 100 100 } 101 101 102 public void setRegistriranParkirac(Regist riranParkirac registriranParkirac) {103 this.regist riranParkirac = registriranParkirac;102 public void setRegistriranParkirac(RegisteredUser registeredUser) { 103 this.registeredUser = registeredUser; 104 104 } 105 105 } -
sources/app/src/main/java/parkup/configs/token/ConfirmationTokenRepositoryRP.java
r9ff45d6 r9dd526f 15 15 Optional<ConfirmationTokenRP> findByToken(String token); 16 16 17 void deleteByRegist riranParkirac_RegParkId(int regParkId);17 void deleteByRegisteredUser_RegParkId(int regParkId); 18 18 19 19 @Transactional -
sources/app/src/main/java/parkup/configs/token/ConfirmationTokenService.java
r9ff45d6 r9dd526f 10 10 11 11 private final ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP; 12 private final ConfirmationTokenRepositoryW confirmationTokenRepositoryW;13 12 14 13 15 public ConfirmationTokenService(ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP , ConfirmationTokenRepositoryW confirmationTokenRepositoryW, parkup.configs.token.ConfirmationTokenRepositoryW confirmationTokenRepositoryW1) {14 public ConfirmationTokenService(ConfirmationTokenRepositoryRP confirmationTokenRepositoryRP) { 16 15 this.confirmationTokenRepositoryRP = confirmationTokenRepositoryRP; 17 this.confirmationTokenRepositoryW = confirmationTokenRepositoryW1;18 16 } 19 17 public void saveConfirmationTokenRP(ConfirmationTokenRP token){ … … 21 19 } 22 20 23 public void saveConfirmationTokenW(ConfirmationTokenW token){24 confirmationTokenRepositoryW.save(token);}25 21 26 22 public Optional<ConfirmationTokenRP> getTokenRP(String token) { 27 23 return confirmationTokenRepositoryRP.findByToken(token); 28 24 } 29 public Optional<ConfirmationTokenW> getTokenW(String token){30 return confirmationTokenRepositoryW.findByToken(token);31 }32 25 33 public void deleteByVraboten_VrabotenId(int vraboten_id){ 34 confirmationTokenRepositoryW.deleteByVraboten_VrabotenId(vraboten_id); 35 } 36 37 public void deleteByRegistriranParkirac_RegParkId(int regParkId){ 38 confirmationTokenRepositoryRP.deleteByRegistriranParkirac_RegParkId(regParkId); 26 public void deleteByRegisteredUser_RegParkId(int regParkId){ 27 confirmationTokenRepositoryRP.deleteByRegisteredUser_RegParkId(regParkId); 39 28 } 40 29 … … 42 31 return confirmationTokenRepositoryRP.updateConfirmedAt(token, LocalDateTime.now()); 43 32 } 44 public int setConfirmedAtW(String token){45 return confirmationTokenRepositoryW.updateConfirmedAt(token,LocalDateTime.now());46 }47 33 } -
sources/app/src/main/java/parkup/configs/webConfigs/WebSecurityConfig.java
r9ff45d6 r9dd526f 3 3 import org.springframework.context.annotation.Bean; 4 4 import org.springframework.context.annotation.Configuration; 5 import org.springframework.security.authentication. dao.DaoAuthenticationProvider;5 import org.springframework.security.authentication.AuthenticationManager; 6 6 import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; 7 7 import org.springframework.security.config.annotation.web.builders.HttpSecurity; … … 9 9 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; 10 10 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 11 import parkup.services.RegistriranParkiracService; 12 import parkup.services.VrabotenService; 11 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; 12 import org.springframework.web.cors.CorsConfiguration; 13 import parkup.configs.CustomAuthenticationFilter; 14 import parkup.configs.CustomAuthorizationFilter; 15 import parkup.services.AdministratorService; 16 import parkup.services.RegisteredUserService; 17 import parkup.services.WorkerService; 18 19 import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS; 13 20 14 21 @EnableWebSecurity 15 22 @Configuration 16 23 public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 17 private final VrabotenService vrabotenService;24 private final WorkerService workerService; 18 25 private final BCryptPasswordEncoder bCryptPasswordEncoder; 19 private final RegistriranParkiracService registriranParkiracService; 26 private final RegisteredUserService registeredUserService; 27 private final AdministratorService administratorService; 20 28 21 public WebSecurityConfig( VrabotenService vrabotenService, BCryptPasswordEncoder bCryptPasswordEncoder, RegistriranParkiracService registriranParkiracService) {22 this. vrabotenService = vrabotenService;29 public WebSecurityConfig(WorkerService workerService, BCryptPasswordEncoder bCryptPasswordEncoder, RegisteredUserService registeredUserService, AdministratorService administratorService) { 30 this.workerService = workerService; 23 31 this.bCryptPasswordEncoder = bCryptPasswordEncoder; 24 this.registriranParkiracService = registriranParkiracService; 32 this.registeredUserService = registeredUserService; 33 this.administratorService = administratorService; 34 } 35 36 @Override 37 protected void configure(AuthenticationManagerBuilder auth) throws Exception { 38 auth.userDetailsService(registeredUserService).passwordEncoder(bCryptPasswordEncoder); 39 auth.userDetailsService(workerService).passwordEncoder(bCryptPasswordEncoder); 40 auth.userDetailsService(administratorService).passwordEncoder(bCryptPasswordEncoder); 25 41 } 26 42 27 43 @Override 28 44 protected void configure(HttpSecurity http) throws Exception { 29 http 30 .csrf().disable() 31 .authorizeRequests() 32 .antMatchers("/registriranParkirac/registration/**") 33 .permitAll() 34 .anyRequest() 35 .authenticated().and().formLogin();//ruta na viktor 36 } 37 38 @Override 39 protected void configure(AuthenticationManagerBuilder auth) throws Exception { 40 auth.authenticationProvider(daoAuthenticationProviderW()); 41 auth.authenticationProvider(daoAuthenticationProviderRP()); 45 CustomAuthenticationFilter customAuthenticationFilter = new CustomAuthenticationFilter(authenticationManagerBean()); 46 customAuthenticationFilter.setFilterProcessesUrl("/api/login"); 47 http.csrf().disable(); 48 http.cors().configurationSource(request -> new CorsConfiguration().applyPermitDefaultValues()); 49 http.sessionManagement().sessionCreationPolicy(STATELESS); 50 http.authorizeRequests().antMatchers("/**").permitAll(); 51 // http.authorizeRequests().antMatchers("/user/registration/**", "/home/markers","/home/getLocation/**","/api/login/**","/home").permitAll(); 52 // http.authorizeRequests().antMatchers( "/user/setFavourite/**","user/favourites").hasAuthority("ROLE_USER"); 53 // http.authorizeRequests().antMatchers( "/home/**").hasAuthority("ROLE_ADMIN"); 54 // http.authorizeRequests().anyRequest().authenticated(); 55 http.addFilter(customAuthenticationFilter); 56 http.addFilterBefore(new CustomAuthorizationFilter(), UsernamePasswordAuthenticationFilter.class); 42 57 } 43 58 44 59 @Bean 45 public DaoAuthenticationProvider daoAuthenticationProviderW() { 46 DaoAuthenticationProvider provider = new DaoAuthenticationProvider(); 47 provider.setPasswordEncoder(bCryptPasswordEncoder); 48 provider.setUserDetailsService(vrabotenService); 49 return provider; 60 @Override 61 public AuthenticationManager authenticationManagerBean() throws Exception { 62 return super.authenticationManagerBean(); 50 63 } 51 64 52 @Bean53 public DaoAuthenticationProvider daoAuthenticationProviderRP(){54 DaoAuthenticationProvider provider = new DaoAuthenticationProvider();55 provider.setPasswordEncoder(bCryptPasswordEncoder);56 provider.setUserDetailsService(registriranParkiracService);57 return provider;58 }59 65 60 66 }
Note:
See TracChangeset
for help on using the changeset viewer.