├── .gitattributes ├── .gitignore ├── .mvn └── wrapper │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── LICENSE ├── etc ├── docker-compose.yml ├── docs │ ├── architecture.html │ ├── css │ │ ├── 3D-rotations.css │ │ ├── cube.css │ │ ├── fonts.css │ │ └── impress-common.css │ ├── exercises.html │ ├── images │ │ ├── basicauthenticationfilter.png │ │ ├── securitycontextholder.png │ │ ├── securityfilterchain.png │ │ ├── securityfilterchain.xcf │ │ └── springsecuritylogo.svg │ ├── intro.html │ ├── js │ │ └── impress.js │ ├── module_001.md │ ├── module_002.md │ ├── module_003.md │ ├── module_004.md │ ├── module_005.md │ ├── module_006.md │ └── slides.md ├── get-csrf ├── goals ├── realms │ └── one-realm.json ├── rewrite-hosts └── token-for ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main ├── java │ └── io │ │ └── jzheaux │ │ └── springsecurity │ │ ├── authzserver │ │ ├── AuthorizationServerConfig.java │ │ ├── AuthzApplication.java │ │ └── UserController.java │ │ ├── goals │ │ ├── CsrfHeaderAdvice.java │ │ ├── CurrentUsername.java │ │ ├── Goal.java │ │ ├── GoalAuthorizer.java │ │ ├── GoalController.java │ │ ├── GoalInitializer.java │ │ ├── GoalRepository.java │ │ ├── GoalsApplication.java │ │ ├── SecurityConfig.java │ │ ├── User.java │ │ ├── UserAuthority.java │ │ ├── UserRepository.java │ │ ├── UserRepositoryJwtAuthenticationConverter.java │ │ ├── UserRepositoryOpaqueTokenIntrospector.java │ │ ├── UserRepositoryUserDetailsService.java │ │ └── UserService.java │ │ ├── spa │ │ └── SpaApplication.java │ │ └── userprofiles │ │ └── UserProfilesApplication.java └── resources │ ├── application.yml │ └── static │ ├── basic.html │ ├── basic.js │ ├── bearer-pkce.js │ ├── bearer.html │ ├── bearer.js │ ├── goals.css │ └── goals.js └── test └── java └── io └── jzheaux └── springsecurity └── goals ├── AuthorizationServer.java ├── GoalControllerTests.java ├── GoalsApplicationTests.java ├── Module1_Tests.java ├── Module2_Tests.java ├── Module3_Tests.java ├── Module4_Tests.java ├── Module5_Tests.java ├── Module6_Tests.java ├── ReflectedUser.java ├── ReflectedUserAuthority.java └── ReflectionSupport.java /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/.gitattributes -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/.gitignore -------------------------------------------------------------------------------- /.mvn/wrapper/MavenWrapperDownloader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/.mvn/wrapper/MavenWrapperDownloader.java -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/.mvn/wrapper/maven-wrapper.properties -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/LICENSE -------------------------------------------------------------------------------- /etc/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docker-compose.yml -------------------------------------------------------------------------------- /etc/docs/architecture.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/architecture.html -------------------------------------------------------------------------------- /etc/docs/css/3D-rotations.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/css/3D-rotations.css -------------------------------------------------------------------------------- /etc/docs/css/cube.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/css/cube.css -------------------------------------------------------------------------------- /etc/docs/css/fonts.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/css/fonts.css -------------------------------------------------------------------------------- /etc/docs/css/impress-common.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/css/impress-common.css -------------------------------------------------------------------------------- /etc/docs/exercises.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/exercises.html -------------------------------------------------------------------------------- /etc/docs/images/basicauthenticationfilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/images/basicauthenticationfilter.png -------------------------------------------------------------------------------- /etc/docs/images/securitycontextholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/images/securitycontextholder.png -------------------------------------------------------------------------------- /etc/docs/images/securityfilterchain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/images/securityfilterchain.png -------------------------------------------------------------------------------- /etc/docs/images/securityfilterchain.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/images/securityfilterchain.xcf -------------------------------------------------------------------------------- /etc/docs/images/springsecuritylogo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/images/springsecuritylogo.svg -------------------------------------------------------------------------------- /etc/docs/intro.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/intro.html -------------------------------------------------------------------------------- /etc/docs/js/impress.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/js/impress.js -------------------------------------------------------------------------------- /etc/docs/module_001.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/module_001.md -------------------------------------------------------------------------------- /etc/docs/module_002.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/module_002.md -------------------------------------------------------------------------------- /etc/docs/module_003.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/module_003.md -------------------------------------------------------------------------------- /etc/docs/module_004.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/module_004.md -------------------------------------------------------------------------------- /etc/docs/module_005.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/module_005.md -------------------------------------------------------------------------------- /etc/docs/module_006.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/module_006.md -------------------------------------------------------------------------------- /etc/docs/slides.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/docs/slides.md -------------------------------------------------------------------------------- /etc/get-csrf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/get-csrf -------------------------------------------------------------------------------- /etc/goals: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/goals -------------------------------------------------------------------------------- /etc/realms/one-realm.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/realms/one-realm.json -------------------------------------------------------------------------------- /etc/rewrite-hosts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/rewrite-hosts -------------------------------------------------------------------------------- /etc/token-for: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/etc/token-for -------------------------------------------------------------------------------- /mvnw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/mvnw -------------------------------------------------------------------------------- /mvnw.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/mvnw.cmd -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/authzserver/AuthorizationServerConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/authzserver/AuthorizationServerConfig.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/authzserver/AuthzApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/authzserver/AuthzApplication.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/authzserver/UserController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/authzserver/UserController.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/CsrfHeaderAdvice.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/CsrfHeaderAdvice.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/CurrentUsername.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/CurrentUsername.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/Goal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/Goal.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/GoalAuthorizer.java: -------------------------------------------------------------------------------- 1 | package io.jzheaux.springsecurity.goals; 2 | 3 | public class GoalAuthorizer { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/GoalController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/GoalController.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/GoalInitializer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/GoalInitializer.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/GoalRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/GoalRepository.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/GoalsApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/GoalsApplication.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/SecurityConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/SecurityConfig.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/User.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/UserAuthority.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/UserAuthority.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/UserRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/UserRepository.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/UserRepositoryJwtAuthenticationConverter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/UserRepositoryJwtAuthenticationConverter.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/UserRepositoryOpaqueTokenIntrospector.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/UserRepositoryOpaqueTokenIntrospector.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/UserRepositoryUserDetailsService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/UserRepositoryUserDetailsService.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/goals/UserService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/goals/UserService.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/spa/SpaApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/spa/SpaApplication.java -------------------------------------------------------------------------------- /src/main/java/io/jzheaux/springsecurity/userprofiles/UserProfilesApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/java/io/jzheaux/springsecurity/userprofiles/UserProfilesApplication.java -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/resources/application.yml -------------------------------------------------------------------------------- /src/main/resources/static/basic.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/resources/static/basic.html -------------------------------------------------------------------------------- /src/main/resources/static/basic.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/resources/static/basic.js -------------------------------------------------------------------------------- /src/main/resources/static/bearer-pkce.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/resources/static/bearer-pkce.js -------------------------------------------------------------------------------- /src/main/resources/static/bearer.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/resources/static/bearer.html -------------------------------------------------------------------------------- /src/main/resources/static/bearer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/resources/static/bearer.js -------------------------------------------------------------------------------- /src/main/resources/static/goals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/resources/static/goals.css -------------------------------------------------------------------------------- /src/main/resources/static/goals.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/main/resources/static/goals.js -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/AuthorizationServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/test/java/io/jzheaux/springsecurity/goals/AuthorizationServer.java -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/GoalControllerTests.java: -------------------------------------------------------------------------------- 1 | package io.jzheaux.springsecurity.goals;public class GoalControllerTests { 2 | } 3 | -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/GoalsApplicationTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/test/java/io/jzheaux/springsecurity/goals/GoalsApplicationTests.java -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/Module1_Tests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/test/java/io/jzheaux/springsecurity/goals/Module1_Tests.java -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/Module2_Tests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/test/java/io/jzheaux/springsecurity/goals/Module2_Tests.java -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/Module3_Tests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/test/java/io/jzheaux/springsecurity/goals/Module3_Tests.java -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/Module4_Tests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/test/java/io/jzheaux/springsecurity/goals/Module4_Tests.java -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/Module5_Tests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/test/java/io/jzheaux/springsecurity/goals/Module5_Tests.java -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/Module6_Tests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/test/java/io/jzheaux/springsecurity/goals/Module6_Tests.java -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/ReflectedUser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/test/java/io/jzheaux/springsecurity/goals/ReflectedUser.java -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/ReflectedUserAuthority.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/test/java/io/jzheaux/springsecurity/goals/ReflectedUserAuthority.java -------------------------------------------------------------------------------- /src/test/java/io/jzheaux/springsecurity/goals/ReflectionSupport.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzheaux/oreilly-spring-security-rest-apis/HEAD/src/test/java/io/jzheaux/springsecurity/goals/ReflectionSupport.java --------------------------------------------------------------------------------