diff --git a/settings.gradle b/settings.gradle index 7ef46c6d..aaff1b87 100644 --- a/settings.gradle +++ b/settings.gradle @@ -19,35 +19,10 @@ include 'spring-session-docs' include 'spring-session-hazelcast' include 'spring-session-jdbc' -include 'spring-session-sample-javaconfig-custom-cookie' -project(':spring-session-sample-javaconfig-custom-cookie').projectDir = file('spring-session-samples/spring-session-sample-javaconfig-custom-cookie') -include 'spring-session-sample-javaconfig-jdbc' -project(':spring-session-sample-javaconfig-jdbc').projectDir = file('spring-session-samples/spring-session-sample-javaconfig-jdbc') -include 'spring-session-sample-javaconfig-redis' -project(':spring-session-sample-javaconfig-redis').projectDir = file('spring-session-samples/spring-session-sample-javaconfig-redis') -include 'spring-session-sample-javaconfig-rest' -project(':spring-session-sample-javaconfig-rest').projectDir = file('spring-session-samples/spring-session-sample-javaconfig-rest') -include 'spring-session-sample-javaconfig-hazelcast' -project(':spring-session-sample-javaconfig-hazelcast').projectDir = file('spring-session-samples/spring-session-sample-javaconfig-hazelcast') -include 'spring-session-sample-javaconfig-security' -project(':spring-session-sample-javaconfig-security').projectDir = file('spring-session-samples/spring-session-sample-javaconfig-security') -include 'spring-session-sample-misc-hazelcast' -project(':spring-session-sample-misc-hazelcast').projectDir = file('spring-session-samples/spring-session-sample-misc-hazelcast') -include 'spring-session-sample-xml-redis' -project(':spring-session-sample-xml-redis').projectDir = file('spring-session-samples/spring-session-sample-xml-redis') -include 'spring-session-sample-xml-jdbc' -project(':spring-session-sample-xml-jdbc').projectDir = file('spring-session-samples/spring-session-sample-xml-jdbc') -include 'spring-session-sample-boot-webflux' -project(':spring-session-sample-boot-webflux').projectDir = file('spring-session-samples/spring-session-sample-boot-webflux') -include 'spring-session-sample-boot-webflux-custom-cookie' -project(':spring-session-sample-boot-webflux-custom-cookie').projectDir = file('spring-session-samples/spring-session-sample-boot-webflux-custom-cookie') -include 'spring-session-sample-boot-mongodb-reactive' -project(':spring-session-sample-boot-mongodb-reactive').projectDir = file('spring-session-samples/spring-session-sample-boot-mongodb-reactive') - -//file('spring-session-samples').eachDirMatch(~/spring-session-sample-.*/) { dir -> -// include dir.name -// project(":$dir.name").projectDir = dir -//} +file('spring-session-samples').eachDirMatch(~/spring-session-sample-.*/) { dir -> + include dir.name + project(":$dir.name").projectDir = dir +} rootProject.children.each { project -> project.buildFileName = "${project.name}.gradle" diff --git a/spring-session-samples/spring-session-sample-boot-findbyusername/src/main/java/sample/mvc/SecurityControllerAdvise.java b/spring-session-samples/spring-session-sample-boot-findbyusername/src/main/java/sample/mvc/SecurityControllerAdvise.java new file mode 100644 index 00000000..059e9f97 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-findbyusername/src/main/java/sample/mvc/SecurityControllerAdvise.java @@ -0,0 +1,44 @@ +/* + * Copyright 2014-2022 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sample.mvc; + +import java.security.Principal; + +import jakarta.servlet.http.HttpSession; + +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ModelAttribute; + +/** + * {@link ControllerAdvice} to expose security related attributes. + * + * @author Rob Winch + */ +@ControllerAdvice +public class SecurityControllerAdvise { + + @ModelAttribute("currentUserName") + String currentUser(Principal principal) { + return (principal != null) ? principal.getName() : null; + } + + @ModelAttribute("httpSessionId") + String sessionId(HttpSession httpSession) { + return httpSession.getId(); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-findbyusername/src/main/resources/templates/index.html b/spring-session-samples/spring-session-sample-boot-findbyusername/src/main/resources/templates/index.html index c950d816..ded45cef 100644 --- a/spring-session-samples/spring-session-sample-boot-findbyusername/src/main/resources/templates/index.html +++ b/spring-session-samples/spring-session-sample-boot-findbyusername/src/main/resources/templates/index.html @@ -7,7 +7,7 @@

Secured Page

This page is secured using Spring Boot, Spring Session, and Spring Security.

-

Your current session id is

+

Your current session id is

@@ -26,7 +26,7 @@ diff --git a/spring-session-samples/spring-session-sample-boot-findbyusername/src/main/resources/templates/layout.html b/spring-session-samples/spring-session-sample-boot-findbyusername/src/main/resources/templates/layout.html index 68bfb27b..bb7c6b32 100644 --- a/spring-session-samples/spring-session-sample-boot-findbyusername/src/main/resources/templates/layout.html +++ b/spring-session-samples/spring-session-sample-boot-findbyusername/src/main/resources/templates/layout.html @@ -81,13 +81,12 @@
Spring Security Sample -
- + - +
- +
diff --git a/spring-session-samples/spring-session-sample-boot-redis-json/src/main/resources/templates/layout.html b/spring-session-samples/spring-session-sample-boot-redis-json/src/main/resources/templates/layout.html index 2be5f82f..1dcea365 100644 --- a/spring-session-samples/spring-session-sample-boot-redis-json/src/main/resources/templates/layout.html +++ b/spring-session-samples/spring-session-sample-boot-redis-json/src/main/resources/templates/layout.html @@ -81,13 +81,12 @@
Spring Security Sample -