Skip to content

Commit 60147a2

Browse files
committed
reddit improvements
1 parent 57bfaae commit 60147a2

24 files changed

+292
-229
lines changed

spring-security-oauth/Procfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
web: java $JAVA_OPTS -jar target/dependency/webapp-runner.jar --port $PORT target/*.war

spring-security-oauth/pom.xml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,26 @@
106106
<version>${httpcore.version}</version>
107107
</dependency>
108108

109+
<!-- thymeleaf -->
110+
111+
<dependency>
112+
<groupId>org.thymeleaf</groupId>
113+
<artifactId>thymeleaf</artifactId>
114+
<version>2.1.4.RELEASE</version>
115+
</dependency>
116+
117+
<dependency>
118+
<groupId>org.thymeleaf</groupId>
119+
<artifactId>thymeleaf-spring4</artifactId>
120+
<version>2.1.4.RELEASE</version>
121+
</dependency>
122+
123+
<dependency>
124+
<groupId>org.thymeleaf.extras</groupId>
125+
<artifactId>thymeleaf-extras-springsecurity3</artifactId>
126+
<version>2.1.2.RELEASE</version>
127+
</dependency>
128+
109129
<!-- persistence -->
110130

111131
<dependency>
@@ -140,6 +160,14 @@
140160
<scope>runtime</scope>
141161
</dependency>
142162

163+
<!-- h2 -->
164+
165+
<dependency>
166+
<groupId>com.h2database</groupId>
167+
<artifactId>h2</artifactId>
168+
<version>1.4.187</version>
169+
</dependency>
170+
143171
<!-- web -->
144172

145173
<dependency>
@@ -328,6 +356,29 @@
328356
</configuration>
329357
</configuration>
330358
</plugin>
359+
360+
<!-- webapp runner -->
361+
<plugin>
362+
<groupId>org.apache.maven.plugins</groupId>
363+
<artifactId>maven-dependency-plugin</artifactId>
364+
<version>2.3</version>
365+
<executions>
366+
<execution>
367+
<phase>package</phase>
368+
<goals><goal>copy</goal></goals>
369+
<configuration>
370+
<artifactItems>
371+
<artifactItem>
372+
<groupId>com.github.jsimone</groupId>
373+
<artifactId>webapp-runner</artifactId>
374+
<version>7.0.57.2</version>
375+
<destFileName>webapp-runner.jar</destFileName>
376+
</artifactItem>
377+
</artifactItems>
378+
</configuration>
379+
</execution>
380+
</executions>
381+
</plugin>
331382

332383
</plugins>
333384

spring-security-oauth/src/main/java/org/baeldung/config/SecurityConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ protected void configure(HttpSecurity http) throws Exception {
3434
.httpBasic().authenticationEntryPoint(oauth2AuthenticationEntryPoint())
3535
.and()
3636
.logout()
37-
.deleteCookies("JSESSIONID","CustomRememberMe")
37+
.deleteCookies("JSESSIONID")
3838
.logoutUrl("/logout")
3939
.logoutSuccessUrl("/");
4040
// @formatter:on

spring-security-oauth/src/main/java/org/baeldung/config/ServletInitializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class ServletInitializer extends AbstractDispatcherServletInitializer {
1313
@Override
1414
protected WebApplicationContext createServletApplicationContext() {
1515
final AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
16-
context.register(PersistenceJPAConfig.class, WebConfig.class, SecurityConfig.class);
16+
context.register(PersistenceJPAConfig.class, WebConfig.class, SecurityConfig.class, ThymeleafConfig.class);
1717
return context;
1818
}
1919

spring-security-oauth/src/main/java/org/baeldung/config/SessionListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class SessionListener implements HttpSessionListener {
1313
@Override
1414
public void sessionCreated(HttpSessionEvent event) {
1515
logger.info("==== Session is created ====");
16-
event.getSession().setMaxInactiveInterval(30 * 60);
16+
event.getSession().setMaxInactiveInterval(60 * 60);
1717
event.getSession().setAttribute("PREDICTION_FEATURE", MyFeatures.PREDICTION_FEATURE);
1818
}
1919

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package org.baeldung.config;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
import org.springframework.web.servlet.ViewResolver;
6+
import org.thymeleaf.extras.springsecurity3.dialect.SpringSecurityDialect;
7+
import org.thymeleaf.spring4.SpringTemplateEngine;
8+
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
9+
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;
10+
import org.thymeleaf.templateresolver.TemplateResolver;
11+
12+
@Configuration
13+
public class ThymeleafConfig {
14+
@Bean
15+
public TemplateResolver templateResolver() {
16+
final ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
17+
templateResolver.setPrefix("/WEB-INF/jsp/");
18+
templateResolver.setSuffix(".jsp");
19+
20+
return templateResolver;
21+
}
22+
23+
@Bean
24+
public SpringTemplateEngine templateEngine() {
25+
final SpringTemplateEngine templateEngine = new SpringTemplateEngine();
26+
templateEngine.setTemplateResolver(templateResolver());
27+
templateEngine.addDialect(new SpringSecurityDialect());
28+
return templateEngine;
29+
}
30+
31+
@Bean
32+
public ViewResolver viewResolver() {
33+
final ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
34+
viewResolver.setTemplateEngine(templateEngine());
35+
viewResolver.setOrder(1);
36+
37+
return viewResolver;
38+
}
39+
}

spring-security-oauth/src/main/java/org/baeldung/config/WebConfig.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
import java.util.Arrays;
66
import java.util.List;
77

8-
import org.baeldung.persistence.service.RedditTokenService;
8+
import javax.annotation.PostConstruct;
9+
10+
import org.apache.commons.lang.StringUtils;
11+
import org.baeldung.persistence.dao.PostRepository;
912
import org.baeldung.reddit.classifier.RedditClassifier;
1013
import org.baeldung.reddit.util.MyFeatures;
1114
import org.baeldung.reddit.util.UserAgentInterceptor;
@@ -115,6 +118,9 @@ protected static class ResourceConfiguration {
115118
@Value("${clientSecret}")
116119
private String clientSecret;
117120

121+
@Autowired
122+
private PostRepository repo;
123+
118124
@Bean
119125
public OAuth2ProtectedResourceDetails reddit() {
120126
final AuthorizationCodeResourceDetails details = new AuthorizationCodeResourceDetails();
@@ -132,16 +138,24 @@ public OAuth2ProtectedResourceDetails reddit() {
132138
}
133139

134140
@Bean
135-
public OAuth2RestTemplate redditRestTemplate(OAuth2ClientContext clientContext, RedditTokenService redditTokenService) {
141+
public OAuth2RestTemplate redditRestTemplate(OAuth2ClientContext clientContext) {
136142
final OAuth2RestTemplate template = new OAuth2RestTemplate(reddit(), clientContext);
137143
final List<ClientHttpRequestInterceptor> list = new ArrayList<ClientHttpRequestInterceptor>();
138144
list.add(new UserAgentInterceptor());
139145
template.setInterceptors(list);
140146
final AccessTokenProviderChain accessTokenProvider = new AccessTokenProviderChain(Arrays.<AccessTokenProvider> asList(new MyAuthorizationCodeAccessTokenProvider(), new ImplicitAccessTokenProvider(), new ResourceOwnerPasswordAccessTokenProvider(),
141147
new ClientCredentialsAccessTokenProvider()));
142-
accessTokenProvider.setClientTokenServices(redditTokenService);
143148
template.setAccessTokenProvider(accessTokenProvider);
144149
return template;
145150
}
151+
152+
@PostConstruct
153+
public void startupCheck() {
154+
if (StringUtils.isBlank(accessTokenUri) || StringUtils.isBlank(userAuthorizationUri) || StringUtils.isBlank(clientID) || StringUtils.isBlank(clientSecret)) {
155+
throw new RuntimeException("Incomplete reddit properties");
156+
}
157+
repo.findAll();
158+
}
159+
146160
}
147161
}

spring-security-oauth/src/main/java/org/baeldung/persistence/dao/UserRepository.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,4 @@ public interface UserRepository extends JpaRepository<User, Long> {
88
User findByUsername(String username);
99

1010
User findByAccessToken(String token);
11-
12-
User findByRememberMeToken(String token);
1311
}

spring-security-oauth/src/main/java/org/baeldung/persistence/model/User.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ public class User {
2626

2727
private boolean needCaptcha;
2828

29-
private String rememberMeToken;
30-
3129
public User() {
3230
super();
3331
}
@@ -82,14 +80,6 @@ public void setNeedCaptcha(final boolean needCaptcha) {
8280

8381
//
8482

85-
public String getRememberMeToken() {
86-
return rememberMeToken;
87-
}
88-
89-
public void setRememberMeToken(String rememberMeToken) {
90-
this.rememberMeToken = rememberMeToken;
91-
}
92-
9383
@Override
9484
public int hashCode() {
9585
final int prime = 31;

spring-security-oauth/src/main/java/org/baeldung/persistence/service/RedditTokenService.java

Lines changed: 0 additions & 55 deletions
This file was deleted.

0 commit comments

Comments
 (0)