Skip to content

Commit 694d2d0

Browse files
committed
Working on security
1 parent 5582c5e commit 694d2d0

File tree

44 files changed

+914
-696
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+914
-696
lines changed

10/part1/chat/src/main/java/com/greglturnquist/learningspringboot/chat/HomeController.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,14 @@
1818
import org.springframework.stereotype.Controller;
1919
import org.springframework.web.bind.annotation.GetMapping;
2020

21-
import javax.servlet.http.HttpServletRequest;
22-
2321
/**
2422
* @author Greg Turnquist
2523
*/
2624
@Controller
2725
public class HomeController {
2826

2927
@GetMapping("/")
30-
public String index(HttpServletRequest request) {
28+
public String index() {
3129
return "index";
3230
}
3331

10/part1/chat/src/main/java/com/greglturnquist/learningspringboot/chat/SecurityConfiguration.java

Lines changed: 30 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,53 +15,47 @@
1515
*/
1616
package com.greglturnquist.learningspringboot.chat;
1717

18-
import org.springframework.beans.factory.annotation.Autowired;
19-
import org.springframework.boot.CommandLineRunner;
20-
import org.springframework.context.annotation.Bean;
2118
import org.springframework.context.annotation.Configuration;
22-
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
23-
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
24-
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
2519

2620
/**
2721
* @author Greg Turnquist
2822
*/
2923
// tag::code[]
3024
@Configuration
31-
public class SecurityConfiguration extends
32-
WebSecurityConfigurerAdapter {
25+
public class SecurityConfiguration /*extends
26+
WebSecurityConfigurerAdapter*/ {
3327

3428
// tag::mongdb-users[]
35-
@Autowired
36-
public void globalUserDetails(AuthenticationManagerBuilder auth,
37-
SpringDataUserDetailsService userDetailsService)
38-
throws Exception {
39-
40-
auth.userDetailsService(userDetailsService);
41-
}
42-
43-
@Bean
44-
CommandLineRunner initializeUsers(UserRepository repository) {
45-
return args -> {
46-
repository.save(new User(null, "greg", "turnquist",
47-
new String[]{"ROLE_USER", "ROLE_ADMIN"}));
48-
49-
repository.save(new User(null, "phil", "webb",
50-
new String[]{"ROLE_USER"}));
51-
};
52-
}
29+
// @Autowired
30+
// public void globalUserDetails(AuthenticationManagerBuilder auth,
31+
// SpringDataUserDetailsService userDetailsService)
32+
// throws Exception {
33+
//
34+
// auth.userDetailsService(userDetailsService);
35+
// }
36+
//
37+
// @Bean
38+
// CommandLineRunner initializeUsers(UserRepository repository) {
39+
// return args -> {
40+
// repository.save(new User(null, "greg", "turnquist",
41+
// new String[]{"ROLE_USER", "ROLE_ADMIN"}));
42+
//
43+
// repository.save(new User(null, "phil", "webb",
44+
// new String[]{"ROLE_USER"}));
45+
// };
46+
// }
5347
// end::mongodb-users[]
5448

55-
@Override
56-
protected void configure(HttpSecurity http) throws Exception {
57-
http
58-
.httpBasic()
59-
.and()
60-
.formLogin()
61-
.and()
62-
.authorizeRequests()
63-
.antMatchers("/**").authenticated();
64-
}
49+
// @Override
50+
// protected void configure(HttpSecurity http) throws Exception {
51+
// http
52+
// .httpBasic()
53+
// .and()
54+
// .formLogin()
55+
// .and()
56+
// .authorizeRequests()
57+
// .antMatchers("/**").authenticated();
58+
// }
6559

6660
}
6761
// end::code[]

10/part1/chat/src/main/java/com/greglturnquist/learningspringboot/chat/SessionHeaderLoadingZuulPreFilter.java

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,38 @@
1515
*/
1616
package com.greglturnquist.learningspringboot.chat;
1717

18-
import com.netflix.zuul.ZuulFilter;
19-
import com.netflix.zuul.context.RequestContext;
2018
import org.springframework.stereotype.Component;
2119

2220
/**
2321
* @author Greg Turnquist
2422
*/
2523
// tag::code[]
2624
@Component
27-
public class SessionHeaderLoadingZuulPreFilter extends ZuulFilter {
28-
29-
@Override
30-
public String filterType() {
31-
return "pre";
32-
}
33-
34-
@Override
35-
public int filterOrder() {
36-
return 0;
37-
}
38-
39-
@Override
40-
public boolean shouldFilter() {
41-
return true;
42-
}
43-
44-
@Override
45-
public Object run() {
46-
RequestContext context = RequestContext.getCurrentContext();
47-
48-
context.addZuulRequestHeader("SESSION",
49-
context.getRequest().getSession().getId());
50-
51-
return null;
52-
}
25+
public class SessionHeaderLoadingZuulPreFilter /*extends ZuulFilter*/ {
26+
27+
// @Override
28+
// public String filterType() {
29+
// return "pre";
30+
// }
31+
//
32+
// @Override
33+
// public int filterOrder() {
34+
// return 0;
35+
// }
36+
//
37+
// @Override
38+
// public boolean shouldFilter() {
39+
// return true;
40+
// }
41+
//
42+
// @Override
43+
// public Object run() {
44+
// RequestContext context = RequestContext.getCurrentContext();
45+
//
46+
// context.addZuulRequestHeader("SESSION",
47+
// context.getRequest().getSession().getId());
48+
//
49+
// return null;
50+
// }
5351
}
5452
// end::code[]

10/part1/comments/src/main/java/com/greglturnquist/learningspringboot/comments/SecurityConfiguration.java

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,26 @@
1515
*/
1616
package com.greglturnquist.learningspringboot.comments;
1717

18-
import org.springframework.beans.factory.annotation.Autowired;
1918
import org.springframework.context.annotation.Configuration;
20-
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
21-
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
22-
import org.springframework.security.web.session.SessionManagementFilter;
2319

2420
/**
2521
* @author Greg Turnquist
2622
*/
2723
// tag::code[]
2824
@Configuration
29-
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
25+
public class SecurityConfiguration /*extends WebSecurityConfigurerAdapter*/ {
3026

31-
@Autowired
32-
SpringSessionSecurityContextFilter springSessionSecurityContextFilter;
33-
34-
@Override
35-
protected void configure(HttpSecurity http) throws Exception {
36-
http
37-
.addFilterAfter(springSessionSecurityContextFilter, SessionManagementFilter.class)
38-
.httpBasic()
39-
.and()
40-
.authorizeRequests()
41-
.antMatchers("/**").authenticated();
42-
}
27+
// @Autowired
28+
// SpringSessionSecurityContextFilter springSessionSecurityContextFilter;
29+
//
30+
// @Override
31+
// protected void configure(HttpSecurity http) throws Exception {
32+
// http
33+
// .addFilterAfter(springSessionSecurityContextFilter, SessionManagementFilter.class)
34+
// .httpBasic()
35+
// .and()
36+
// .authorizeRequests()
37+
// .antMatchers("/**").authenticated();
38+
// }
4339
}
4440
// end::code[]

10/part1/comments/src/main/java/com/greglturnquist/learningspringboot/comments/SpringSessionSecurityContextFilter.java

Lines changed: 23 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -15,46 +15,34 @@
1515
*/
1616
package com.greglturnquist.learningspringboot.comments;
1717

18-
import java.io.IOException;
19-
20-
import javax.servlet.FilterChain;
21-
import javax.servlet.ServletException;
22-
import javax.servlet.http.HttpServletRequest;
23-
import javax.servlet.http.HttpServletResponse;
24-
25-
import org.springframework.security.core.context.SecurityContextHolder;
26-
import org.springframework.security.web.context.HttpSessionSecurityContextRepository;
27-
import org.springframework.session.Session;
28-
import org.springframework.session.SessionRepository;
2918
import org.springframework.stereotype.Component;
30-
import org.springframework.web.filter.OncePerRequestFilter;
3119

3220
/**
3321
* @author Greg Turnquist
3422
*/
3523
@Component
36-
public class SpringSessionSecurityContextFilter extends OncePerRequestFilter {
37-
38-
private final SessionRepository sessionRepository;
39-
40-
public SpringSessionSecurityContextFilter(SessionRepository sessionRepository) {
41-
this.sessionRepository = sessionRepository;
42-
}
43-
44-
@Override
45-
protected void doFilterInternal(HttpServletRequest request,
46-
HttpServletResponse response,
47-
FilterChain filterChain) throws ServletException, IOException {
48-
String sessionId = request.getHeader("SESSION");
49-
if (sessionId != null) {
50-
Session session = sessionRepository.findById(sessionId);
51-
if (session != null) {
52-
SecurityContextHolder.setContext(
53-
session.getAttribute(
54-
HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY));
55-
}
56-
}
57-
filterChain.doFilter(request, response);
58-
}
24+
public class SpringSessionSecurityContextFilter /*extends OncePerRequestFilter*/ {
25+
26+
// private final SessionRepository sessionRepository;
27+
//
28+
// public SpringSessionSecurityContextFilter(SessionRepository sessionRepository) {
29+
// this.sessionRepository = sessionRepository;
30+
// }
31+
//
32+
// @Override
33+
// protected void doFilterInternal(HttpServletRequest request,
34+
// HttpServletResponse response,
35+
// FilterChain filterChain) throws ServletException, IOException {
36+
// String sessionId = request.getHeader("SESSION");
37+
// if (sessionId != null) {
38+
// Session session = sessionRepository.findById(sessionId);
39+
// if (session != null) {
40+
// SecurityContextHolder.setContext(
41+
// session.getAttribute(
42+
// HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY));
43+
// }
44+
// }
45+
// filterChain.doFilter(request, response);
46+
// }
5947

6048
}

10/part1/images/src/main/java/com/greglturnquist/learningspringboot/HomeController.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,7 @@
1919
import java.util.HashMap;
2020
import java.util.Map;
2121

22-
import javax.servlet.http.HttpSession;
23-
2422
import reactor.core.publisher.Mono;
25-
2623
import org.springframework.stereotype.Controller;
2724
import org.springframework.ui.Model;
2825
import org.springframework.web.bind.annotation.GetMapping;
@@ -70,7 +67,7 @@ public Mono<String> index(Model model,
7067

7168
@GetMapping("/token")
7269
@ResponseBody
73-
public Mono<Map<String, String>> token(HttpSession session) {
74-
return Mono.just(Collections.singletonMap("token", session.getId()));
70+
public Mono<Map<String, String>> token(@RequestHeader("SESSION") String sessionId) {
71+
return Mono.just(Collections.singletonMap("token", sessionId));
7572
}
7673
}

10/part1/images/src/main/java/com/greglturnquist/learningspringboot/SecurityConfiguration.java

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,31 @@
1515
*/
1616
package com.greglturnquist.learningspringboot;
1717

18-
import com.greglturnquist.learningspringboot.images.SpringSessionSecurityContextFilter;
19-
import org.springframework.beans.factory.annotation.Autowired;
20-
import org.springframework.context.annotation.Bean;
2118
import org.springframework.context.annotation.Configuration;
22-
import org.springframework.http.HttpMethod;
23-
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
24-
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
25-
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
26-
import org.springframework.security.web.context.HttpSessionSecurityContextRepository;
27-
import org.springframework.security.web.session.SessionManagementFilter;
2819

2920
/**
3021
* @author Greg Turnquist
3122
*/
3223
// tag::code[]
3324
@Configuration
34-
@EnableGlobalMethodSecurity(prePostEnabled = true)
35-
public class SecurityConfiguration extends
36-
WebSecurityConfigurerAdapter {
25+
//@EnableGlobalMethodSecurity(prePostEnabled = true)
26+
public class SecurityConfiguration /*extends
27+
WebSecurityConfigurerAdapter*/ {
3728

38-
@Override
39-
protected void configure(HttpSecurity http) throws Exception {
40-
http
41-
.httpBasic()
42-
.disable()
43-
.authorizeRequests()
44-
.anyRequest().authenticated()
45-
.and()
46-
.addFilterAfter(springSessionSecurityContextFilter,
47-
SessionManagementFilter.class);
48-
}
49-
50-
@Autowired
51-
SpringSessionSecurityContextFilter
52-
springSessionSecurityContextFilter;
29+
// @Override
30+
// protected void configure(HttpSecurity http) throws Exception {
31+
// http
32+
// .httpBasic()
33+
// .disable()
34+
// .authorizeRequests()
35+
// .anyRequest().authenticated()
36+
// .and()
37+
// .addFilterAfter(springSessionSecurityContextFilter,
38+
// SessionManagementFilter.class);
39+
// }
40+
//
41+
// @Autowired
42+
// SpringSessionSecurityContextFilter
43+
// springSessionSecurityContextFilter;
5344
}
5445
// end::code[]

10/part1/images/src/main/java/com/greglturnquist/learningspringboot/images/InitDatabase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ CommandLineRunner init(MongoOperations operations) {
3232
operations.dropCollection(Image.class);
3333

3434
operations.insert(new Image("1",
35-
"learning-spring-boot-cover.jpg"));
35+
"learning-spring-boot-cover.jpg", "greg"));
3636
operations.insert(new Image("2",
37-
"learning-spring-boot-2nd-edition-cover.jpg"));
37+
"learning-spring-boot-2nd-edition-cover.jpg", "greg"));
3838
operations.insert(new Image("3",
39-
"bazinga.png"));
39+
"bazinga.png", "greg"));
4040

4141
operations.findAll(Image.class).forEach(image -> {
4242
System.out.println(image.toString());

0 commit comments

Comments
 (0)