Skip to content

Commit 68731aa

Browse files
committed
work
1 parent a9f57a0 commit 68731aa

File tree

13 files changed

+104
-89
lines changed

13 files changed

+104
-89
lines changed

src/main/java/org/woehlke/simpleworklist/SimpleworklistApplication.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@
44
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
55
import org.springframework.boot.autoconfigure.SpringBootApplication;
66
import org.springframework.boot.context.properties.EnableConfigurationProperties;
7-
import org.woehlke.simpleworklist.application.ApplicationProperties;
8-
import org.woehlke.simpleworklist.application.config.WebMvcConfig;
9-
import org.woehlke.simpleworklist.application.config.WebSecurityConfig;
7+
import org.woehlke.simpleworklist.config.SimpleworklistProperties;
8+
import org.woehlke.simpleworklist.config.WebMvcConfig;
9+
import org.woehlke.simpleworklist.config.WebSecurityConfig;
1010

1111

1212
@ImportAutoConfiguration({
1313
WebMvcConfig.class,
1414
WebSecurityConfig.class
1515
})
1616
@EnableConfigurationProperties({
17-
ApplicationProperties.class
17+
SimpleworklistProperties.class
1818
})
1919
@SpringBootApplication
2020
public class SimpleworklistApplication {

src/main/java/org/woehlke/simpleworklist/common/domain/AbstractController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import org.springframework.web.bind.annotation.ModelAttribute;
66
import org.springframework.web.bind.annotation.SessionAttributes;
77
import org.woehlke.simpleworklist.domain.breadcrumb.BreadcrumbService;
8-
import org.woehlke.simpleworklist.application.ApplicationProperties;
8+
import org.woehlke.simpleworklist.config.SimpleworklistProperties;
99
import org.woehlke.simpleworklist.domain.context.Context;
1010
import org.woehlke.simpleworklist.domain.project.Project;
1111
import org.woehlke.simpleworklist.domain.task.TaskService;
@@ -37,7 +37,7 @@
3737
public abstract class AbstractController {
3838

3939
@Autowired
40-
protected ApplicationProperties applicationProperties;
40+
protected SimpleworklistProperties simpleworklistProperties;
4141

4242
@Autowired
4343
protected ProjectService projectService;

src/main/java/org/woehlke/simpleworklist/application/ApplicationProperties.java renamed to src/main/java/org/woehlke/simpleworklist/config/SimpleworklistProperties.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.woehlke.simpleworklist.application;
1+
package org.woehlke.simpleworklist.config;
22

33
import lombok.Getter;
44
import lombok.Setter;
@@ -7,14 +7,15 @@
77
import org.springframework.validation.annotation.Validated;
88

99
import javax.validation.Valid;
10+
import javax.validation.constraints.NotBlank;
1011
import javax.validation.constraints.NotNull;
1112

1213
@Component
1314
@Getter
1415
@Setter
1516
@ConfigurationProperties(prefix="org.woehlke.simpleworklist")
1617
@Validated
17-
public class ApplicationProperties {
18+
public class SimpleworklistProperties {
1819

1920
@Valid
2021
private Mail mail = new Mail();
@@ -122,8 +123,17 @@ public static class WebSecurity {
122123

123124
private String[] antPatternsPublic;
124125

126+
//@NotNull
127+
//private Integer strengthBCryptPasswordEncoder;
128+
129+
@NotBlank
130+
private String secret;
131+
132+
@NotNull
133+
private Integer iterations;
134+
125135
@NotNull
126-
private Integer strengthBCryptPasswordEncoder;
136+
private Integer hashWidth;
127137
}
128138

129139
}
Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.woehlke.simpleworklist.application.config;
1+
package org.woehlke.simpleworklist.config;
22

33
import org.springframework.beans.factory.annotation.Autowired;
44
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -18,7 +18,6 @@
1818
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
1919
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
2020
import org.thymeleaf.dialect.springdata.SpringDataDialect;
21-
import org.woehlke.simpleworklist.application.ApplicationProperties;
2221

2322
import java.util.Locale;
2423
import java.util.Properties;
@@ -33,42 +32,42 @@
3332
"org.woehlke.simpleworklist"
3433
})
3534
@EnableConfigurationProperties({
36-
ApplicationProperties.class
35+
SimpleworklistProperties.class
3736
})
3837
public class WebMvcConfig extends WebMvcConfigurerAdapter implements WebMvcConfigurer {
3938

40-
private final ApplicationProperties applicationProperties;
39+
private final SimpleworklistProperties simpleworklistProperties;
4140

4241
@Autowired
43-
public WebMvcConfig(ApplicationProperties applicationProperties) {
44-
this.applicationProperties = applicationProperties;
42+
public WebMvcConfig(SimpleworklistProperties simpleworklistProperties) {
43+
this.simpleworklistProperties = simpleworklistProperties;
4544
}
4645

4746
@Bean
4847
public JavaMailSender mailSender(){
4948
Properties javaMailProperties = new Properties();
5049
javaMailProperties.setProperty(
5150
"mail.smtp.auth",
52-
applicationProperties.getMail().getAuth().toString()
51+
simpleworklistProperties.getMail().getAuth().toString()
5352
);
5453
javaMailProperties.setProperty(
5554
"mail.smtp.ssl.enable",
56-
applicationProperties.getMail().getSslEnable().toString()
55+
simpleworklistProperties.getMail().getSslEnable().toString()
5756
);
5857
javaMailProperties.setProperty(
5958
"mail.smtp.socketFactory.port",
60-
applicationProperties.getMail().getSocketFactoryPort()
59+
simpleworklistProperties.getMail().getSocketFactoryPort()
6160
);
6261
javaMailProperties.setProperty(
6362
"mail.smtp.socketFactory.class",
64-
applicationProperties.getMail().getSocketFactoryClass()
63+
simpleworklistProperties.getMail().getSocketFactoryClass()
6564
);
6665
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
6766
mailSender.setJavaMailProperties(javaMailProperties);
68-
mailSender.setHost(applicationProperties.getMail().getHost());
69-
mailSender.setPort(applicationProperties.getMail().getPort());
70-
mailSender.setUsername(applicationProperties.getMail().getUsername());
71-
mailSender.setPassword(applicationProperties.getMail().getPassword());
67+
mailSender.setHost(simpleworklistProperties.getMail().getHost());
68+
mailSender.setPort(simpleworklistProperties.getMail().getPort());
69+
mailSender.setUsername(simpleworklistProperties.getMail().getUsername());
70+
mailSender.setPassword(simpleworklistProperties.getMail().getPassword());
7271
return mailSender;
7372
}
7473

@@ -113,12 +112,12 @@ public void addViewControllers(ViewControllerRegistry registry) {
113112
}
114113

115114
public void addResourceHandlers(ResourceHandlerRegistry registry) {
116-
for(String h :applicationProperties.getWebMvc().getStaticResourceHandler()){
115+
for(String h : simpleworklistProperties.getWebMvc().getStaticResourceHandler()){
117116
String location = "classpath:/static"+h+"/";
118117
registry.addResourceHandler(h+"/*").addResourceLocations(location);
119118
registry.addResourceHandler(h+"/**").addResourceLocations(location);
120119
}
121-
for(String h :applicationProperties.getWebMvc().getDynaicResourceHandler()){
120+
for(String h : simpleworklistProperties.getWebMvc().getDynaicResourceHandler()){
122121
String location = h+"/";
123122
registry.addResourceHandler(h+"/*").addResourceLocations(location);
124123
registry.addResourceHandler(h+"/**").addResourceLocations(location);
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.woehlke.simpleworklist.application.config;
1+
package org.woehlke.simpleworklist.config;
22

33
import org.springframework.beans.factory.annotation.Autowired;
44
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
@@ -14,14 +14,11 @@
1414
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
1515
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
1616
import org.springframework.security.core.userdetails.UserDetailsService;
17-
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
1817
import org.springframework.security.crypto.password.PasswordEncoder;
19-
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
18+
import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
2019
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
2120
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
22-
import org.woehlke.simpleworklist.application.ApplicationProperties;
23-
import org.woehlke.simpleworklist.user.login.LoginSuccessHandler;
24-
import org.woehlke.simpleworklist.user.services.UserAccountSecurityService;
21+
import org.woehlke.simpleworklist.user.services.SimpleworklistUserAccountSecurityService;
2522

2623

2724
@Configuration
@@ -34,25 +31,25 @@
3431
WebMvcConfig.class
3532
})
3633
@EnableConfigurationProperties({
37-
ApplicationProperties.class
34+
SimpleworklistProperties.class
3835
})
3936
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
4037

4138
private final AuthenticationManagerBuilder authenticationManagerBuilder;
42-
private final AuthenticationSuccessHandler loginSuccessHandler;
43-
private final UserAccountSecurityService userAccountSecurityService;
44-
private final ApplicationProperties applicationProperties;
39+
//private final AuthenticationSuccessHandler loginSuccessHandler;
40+
private final SimpleworklistUserAccountSecurityService simpleworklistUserAccountSecurityService;
41+
private final SimpleworklistProperties simpleworklistProperties;
4542

4643
@Autowired
4744
public WebSecurityConfig(
48-
AuthenticationManagerBuilder authenticationManagerBuilder,
49-
LoginSuccessHandler loginSuccessHandler,
50-
UserAccountSecurityService userAccountSecurityService,
51-
ApplicationProperties applicationProperties) {
52-
this.authenticationManagerBuilder = authenticationManagerBuilder;
53-
this.loginSuccessHandler = loginSuccessHandler;
54-
this.userAccountSecurityService = userAccountSecurityService;
55-
this.applicationProperties = applicationProperties;
45+
AuthenticationManagerBuilder auth,
46+
//LoginSuccessHandler loginSuccessHandler,
47+
SimpleworklistUserAccountSecurityService simpleworklistUserAccountSecurityService,
48+
SimpleworklistProperties simpleworklistProperties) {
49+
this.authenticationManagerBuilder = auth;
50+
//this.loginSuccessHandler = loginSuccessHandler;
51+
this.simpleworklistUserAccountSecurityService = simpleworklistUserAccountSecurityService;
52+
this.simpleworklistProperties = simpleworklistProperties;
5653
}
5754

5855
@Override
@@ -61,35 +58,35 @@ protected void configure(HttpSecurity http) throws Exception {
6158
.headers()
6259
.disable()
6360
.authorizeRequests()
64-
.antMatchers(applicationProperties.getWebSecurity().getAntPatternsPublic())
61+
.antMatchers(simpleworklistProperties.getWebSecurity().getAntPatternsPublic())
6562
.permitAll()
6663
.anyRequest()
6764
.fullyAuthenticated()
6865
.and()
6966
.csrf()
7067
.and()
7168
.formLogin()
72-
.loginPage(applicationProperties.getWebSecurity().getLoginPage())
73-
.usernameParameter(applicationProperties.getWebSecurity().getUsernameParameter())
74-
.passwordParameter(applicationProperties.getWebSecurity().getPasswordParameter())
75-
.loginProcessingUrl(applicationProperties.getWebSecurity().getLoginProcessingUrl())
76-
.failureForwardUrl(applicationProperties.getWebSecurity().getFailureForwardUrl())
77-
.defaultSuccessUrl(applicationProperties.getWebSecurity().getDefaultSuccessUrl())
78-
.successHandler(loginSuccessHandler)
69+
.loginPage(simpleworklistProperties.getWebSecurity().getLoginPage())
70+
.usernameParameter(simpleworklistProperties.getWebSecurity().getUsernameParameter())
71+
.passwordParameter(simpleworklistProperties.getWebSecurity().getPasswordParameter())
72+
.loginProcessingUrl(simpleworklistProperties.getWebSecurity().getLoginProcessingUrl())
73+
.failureForwardUrl(simpleworklistProperties.getWebSecurity().getFailureForwardUrl())
74+
.defaultSuccessUrl(simpleworklistProperties.getWebSecurity().getDefaultSuccessUrl())
75+
//.successHandler(loginSuccessHandler)
7976
.permitAll()
8077
.and()
8178
.csrf()
8279
.and()
8380
.logout()
84-
.logoutUrl(applicationProperties.getWebSecurity().getLogoutUrl())
85-
.deleteCookies(applicationProperties.getWebSecurity().getCookieNamesToClear())
86-
.invalidateHttpSession(applicationProperties.getWebSecurity().getInvalidateHttpSession())
81+
.logoutUrl(simpleworklistProperties.getWebSecurity().getLogoutUrl())
82+
.deleteCookies(simpleworklistProperties.getWebSecurity().getCookieNamesToClear())
83+
.invalidateHttpSession(simpleworklistProperties.getWebSecurity().getInvalidateHttpSession())
8784
.permitAll();
8885
}
8986

9087
@Bean
9188
public UserDetailsService userDetailsService(){
92-
return this.userAccountSecurityService;
89+
return this.simpleworklistUserAccountSecurityService;
9390
}
9491

9592
/**
@@ -98,8 +95,14 @@ public UserDetailsService userDetailsService(){
9895
*/
9996
@Bean
10097
public PasswordEncoder encoder(){
101-
int strength = applicationProperties.getWebSecurity().getStrengthBCryptPasswordEncoder();
102-
return new BCryptPasswordEncoder(strength);
98+
//int strength = simpleworklistProperties.getWebSecurity().getStrengthBCryptPasswordEncoder();
99+
//return new Pbkdf2PasswordEncoder(strength);
100+
CharSequence secret=this.simpleworklistProperties.getWebSecurity().getSecret();
101+
int iterations=this.simpleworklistProperties.getWebSecurity().getIterations();
102+
int hashWidth=this.simpleworklistProperties.getWebSecurity().getHashWidth();
103+
Pbkdf2PasswordEncoder encoder = (new Pbkdf2PasswordEncoder(secret,iterations,hashWidth));
104+
encoder.setEncodeHashAsBase64(true);
105+
return encoder;
103106
}
104107

105108
@Bean
@@ -113,7 +116,7 @@ public AuthenticationManager authenticationManager() throws Exception {
113116
public UsernamePasswordAuthenticationFilter authenticationFilter() throws Exception {
114117
UsernamePasswordAuthenticationFilter filter = new UsernamePasswordAuthenticationFilter();
115118
filter.setAuthenticationManager(authenticationManager());
116-
filter.setFilterProcessesUrl(applicationProperties.getWebSecurity().getLoginProcessingUrl());
119+
filter.setFilterProcessesUrl(simpleworklistProperties.getWebSecurity().getLoginProcessingUrl());
117120
return filter;
118121
}
119122
}

src/main/java/org/woehlke/simpleworklist/user/services/UserAccountSecurityService.java renamed to src/main/java/org/woehlke/simpleworklist/user/services/SimpleworklistUserAccountSecurityService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33
import org.springframework.security.core.userdetails.UserDetailsService;
44

5-
public interface UserAccountSecurityService extends UserDetailsService {
5+
public interface SimpleworklistUserAccountSecurityService extends UserDetailsService {
66
}

src/main/java/org/woehlke/simpleworklist/user/services/UserAccountSecurityServiceImpl.java renamed to src/main/java/org/woehlke/simpleworklist/user/services/SimpleworklistUserAccountSecurityServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
@Slf4j
1515
@Service
1616
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
17-
public class UserAccountSecurityServiceImpl implements UserAccountSecurityService {
17+
public class SimpleworklistUserAccountSecurityServiceImpl implements SimpleworklistUserAccountSecurityService {
1818

1919
private final UserAccountRepository userAccountRepository;
2020

2121
@Autowired
22-
public UserAccountSecurityServiceImpl(UserAccountRepository userAccountRepository) {
22+
public SimpleworklistUserAccountSecurityServiceImpl(UserAccountRepository userAccountRepository) {
2323
this.userAccountRepository = userAccountRepository;
2424
}
2525

src/main/java/org/woehlke/simpleworklist/user/services/UserPasswordRecoveryServiceImpl.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import org.springframework.stereotype.Service;
1010
import org.springframework.transaction.annotation.Propagation;
1111
import org.springframework.transaction.annotation.Transactional;
12-
import org.woehlke.simpleworklist.application.ApplicationProperties;
12+
import org.woehlke.simpleworklist.config.SimpleworklistProperties;
1313
import org.woehlke.simpleworklist.user.domain.resetpassword.UserPasswordRecovery;
1414
import org.woehlke.simpleworklist.user.domain.resetpassword.UserPasswordRecoveryRepository;
1515
import org.woehlke.simpleworklist.user.domain.resetpassword.UserPasswordRecoveryStatus;
@@ -23,14 +23,14 @@
2323
public class UserPasswordRecoveryServiceImpl implements UserPasswordRecoveryService {
2424

2525
private final UserPasswordRecoveryRepository userPasswordRecoveryRepository;
26-
private final ApplicationProperties applicationProperties;
26+
private final SimpleworklistProperties simpleworklistProperties;
2727
private final TokenGeneratorService tokenGeneratorService;
2828
private final JavaMailSender mailSender;
2929

3030
@Autowired
31-
public UserPasswordRecoveryServiceImpl(UserPasswordRecoveryRepository userPasswordRecoveryRepository, ApplicationProperties applicationProperties, TokenGeneratorService tokenGeneratorService, JavaMailSender mailSender) {
31+
public UserPasswordRecoveryServiceImpl(UserPasswordRecoveryRepository userPasswordRecoveryRepository, SimpleworklistProperties simpleworklistProperties, TokenGeneratorService tokenGeneratorService, JavaMailSender mailSender) {
3232
this.userPasswordRecoveryRepository = userPasswordRecoveryRepository;
33-
this.applicationProperties = applicationProperties;
33+
this.simpleworklistProperties = simpleworklistProperties;
3434
this.tokenGeneratorService = tokenGeneratorService;
3535
this.mailSender = mailSender;
3636
}
@@ -43,15 +43,15 @@ public UserPasswordRecovery findByToken(String token) {
4343
@Override
4444
public boolean passwordRecoveryIsRetryAndMaximumNumberOfRetries(String email) {
4545
UserPasswordRecovery earlierOptIn = userPasswordRecoveryRepository.findByEmail(email);
46-
return earlierOptIn == null?false:earlierOptIn.getNumberOfRetries() >= applicationProperties.getRegistration().getMaxRetries();
46+
return earlierOptIn == null?false:earlierOptIn.getNumberOfRetries() >= simpleworklistProperties.getRegistration().getMaxRetries();
4747
}
4848

4949
@Override
5050
public void passwordRecoveryCheckIfResponseIsInTime(String email) {
5151
UserPasswordRecovery earlierOptIn = userPasswordRecoveryRepository.findByEmail(email);
5252
if (earlierOptIn != null) {
5353
Date now = new Date();
54-
if ((applicationProperties.getRegistration().getTtlEmailVerificationRequest() + earlierOptIn.getRowCreatedAt().getTime()) < now.getTime()) {
54+
if ((simpleworklistProperties.getRegistration().getTtlEmailVerificationRequest() + earlierOptIn.getRowCreatedAt().getTime()) < now.getTime()) {
5555
userPasswordRecoveryRepository.delete(earlierOptIn);
5656
}
5757
}
@@ -103,8 +103,8 @@ public void passwordRecoveryDone(UserPasswordRecovery o) {
103103
}
104104

105105
private void sendEmailForPasswordReset(UserPasswordRecovery o) {
106-
String urlHost = applicationProperties.getRegistration().getUrlHost();
107-
String mailFrom= applicationProperties.getRegistration().getMailFrom();
106+
String urlHost = simpleworklistProperties.getRegistration().getUrlHost();
107+
String mailFrom= simpleworklistProperties.getRegistration().getMailFrom();
108108
boolean success = true;
109109
SimpleMailMessage msg = new SimpleMailMessage();
110110
msg.setTo(o.getEmail());

0 commit comments

Comments
 (0)