JAVA-13856 Create new security-modules (#12622)
This commit is contained in:
parent
b38eb760d1
commit
14c998c3ac
22
pom.xml
22
pom.xml
|
@ -344,7 +344,6 @@
|
|||
<module>apache-poi</module>
|
||||
<module>apache-poi-2</module>
|
||||
<module>apache-rocketmq</module>
|
||||
<module>apache-shiro</module>
|
||||
<module>apache-spark</module>
|
||||
<module>apache-tapestry</module>
|
||||
<module>apache-thrift</module>
|
||||
|
@ -365,11 +364,9 @@
|
|||
<module>bazel</module>
|
||||
<module>blade</module>
|
||||
<module>bootique</module>
|
||||
<module>cas</module>
|
||||
<module>cdi</module>
|
||||
<module>checker-plugin</module>
|
||||
<!-- <module>clojure</module> --> <!-- Not a maven project -->
|
||||
<module>cloud-foundry-uaa</module>
|
||||
<module>code-generation</module>
|
||||
|
||||
<module>core-groovy-modules</module>
|
||||
|
@ -415,9 +412,6 @@
|
|||
<module>jackson-modules</module>
|
||||
<module>jackson-simple</module>
|
||||
<module>java-blockchain</module>
|
||||
|
||||
<!-- <module>java-ee-8-security-api</module> --> <!-- long running -->
|
||||
|
||||
<module>javafx</module>
|
||||
<module>java-jdi</module>
|
||||
<module>java-lite</module>
|
||||
|
@ -431,14 +425,12 @@
|
|||
<module>javaxval</module>
|
||||
<module>jaxb</module>
|
||||
<module>jee-7</module>
|
||||
<module>jee-7-security</module>
|
||||
<module>jakarta-ee</module>
|
||||
<module>jersey</module>
|
||||
<module>jgit</module>
|
||||
<module>jgroups</module>
|
||||
<module>jhipster-5</module>
|
||||
<module>jib</module>
|
||||
<module>jjwt</module>
|
||||
<module>jmeter</module>
|
||||
<module>jmh</module>
|
||||
<module>java-native</module>
|
||||
|
@ -491,7 +483,6 @@
|
|||
<module>ninja</module>
|
||||
<module>open-liberty</module>
|
||||
|
||||
<module>oauth2-framework-impl</module>
|
||||
<module>orika</module>
|
||||
<module>osgi</module>
|
||||
|
||||
|
@ -515,6 +506,7 @@
|
|||
<module>rxjava-modules</module>
|
||||
<module>atomikos</module>
|
||||
<module>reactive-systems</module>
|
||||
<module>security-modules</module>
|
||||
<module>slack</module>
|
||||
</modules>
|
||||
|
||||
|
@ -561,7 +553,6 @@
|
|||
<module>parent-java</module>
|
||||
|
||||
<module>saas</module>
|
||||
<module>software-security/sql-injection-samples</module>
|
||||
|
||||
<module>spark-java</module>
|
||||
<module>spf4j</module>
|
||||
|
@ -775,7 +766,6 @@
|
|||
<module>apache-poi</module>
|
||||
<module>apache-poi-2</module>
|
||||
<module>apache-rocketmq</module>
|
||||
<module>apache-shiro</module>
|
||||
<module>apache-spark</module>
|
||||
<module>apache-tapestry</module>
|
||||
<module>apache-thrift</module>
|
||||
|
@ -796,11 +786,9 @@
|
|||
<module>bazel</module>
|
||||
<module>blade</module>
|
||||
<module>bootique</module>
|
||||
<module>cas</module>
|
||||
<module>cdi</module>
|
||||
<module>checker-plugin</module>
|
||||
<!-- <module>clojure</module> --> <!-- Not a maven project -->
|
||||
<module>cloud-foundry-uaa</module>
|
||||
<module>code-generation</module>
|
||||
|
||||
<module>core-groovy-modules</module>
|
||||
|
@ -846,9 +834,6 @@
|
|||
<module>jackson-modules</module>
|
||||
<module>jackson-simple</module>
|
||||
<module>java-blockchain</module>
|
||||
|
||||
<!-- <module>java-ee-8-security-api</module> --> <!-- long running -->
|
||||
|
||||
<module>javafx</module>
|
||||
<module>java-jdi</module>
|
||||
<module>java-lite</module>
|
||||
|
@ -862,14 +847,12 @@
|
|||
<module>javaxval</module>
|
||||
<module>jaxb</module>
|
||||
<module>jee-7</module>
|
||||
<module>jee-7-security</module>
|
||||
<module>jakarta-ee</module>
|
||||
<module>jersey</module>
|
||||
<module>jgit</module>
|
||||
<module>jgroups</module>
|
||||
<module>jhipster-5</module>
|
||||
<module>jib</module>
|
||||
<module>jjwt</module>
|
||||
<module>jmeter</module>
|
||||
<module>jmh</module>
|
||||
<module>java-native</module>
|
||||
|
@ -924,7 +907,6 @@
|
|||
<module>ninja</module>
|
||||
<module>open-liberty</module>
|
||||
|
||||
<module>oauth2-framework-impl</module>
|
||||
<module>orika</module>
|
||||
<module>osgi</module>
|
||||
|
||||
|
@ -948,6 +930,7 @@
|
|||
<module>rxjava-modules</module>
|
||||
<module>atomikos</module>
|
||||
<module>reactive-systems</module>
|
||||
<module>security-modules</module>
|
||||
<module>slack</module>
|
||||
</modules>
|
||||
|
||||
|
@ -986,7 +969,6 @@
|
|||
<module>parent-java</module>
|
||||
|
||||
<module>saas</module>
|
||||
<module>software-security/sql-injection-samples</module>
|
||||
|
||||
<module>spark-java</module>
|
||||
<module>spf4j</module>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<groupId>com.baeldung</groupId>
|
||||
<artifactId>parent-boot-2</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<relativePath>../parent-boot-2</relativePath>
|
||||
<relativePath>../../parent-boot-2</relativePath>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
0
cas/cas-server/.gitignore → security-modules/cas/cas-server/.gitignore
vendored
Executable file → Normal file
0
cas/cas-server/.gitignore → security-modules/cas/cas-server/.gitignore
vendored
Executable file → Normal file
0
cas/cas-server/docker-build.sh → security-modules/cas/cas-server/docker-build.sh
Executable file → Normal file
0
cas/cas-server/docker-build.sh → security-modules/cas/cas-server/docker-build.sh
Executable file → Normal file
0
cas/cas-server/docker-push.sh → security-modules/cas/cas-server/docker-push.sh
Executable file → Normal file
0
cas/cas-server/docker-push.sh → security-modules/cas/cas-server/docker-push.sh
Executable file → Normal file
0
cas/cas-server/docker-run.sh → security-modules/cas/cas-server/docker-run.sh
Executable file → Normal file
0
cas/cas-server/docker-run.sh → security-modules/cas/cas-server/docker-run.sh
Executable file → Normal file
0
cas/cas-server/gradlew → security-modules/cas/cas-server/gradlew
vendored
Executable file → Normal file
0
cas/cas-server/gradlew → security-modules/cas/cas-server/gradlew
vendored
Executable file → Normal file
|
@ -1,100 +1,100 @@
|
|||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
0
cas/cas-server/src/main/jib/docker/entrypoint.sh → security-modules/cas/cas-server/src/main/jib/docker/entrypoint.sh
Executable file → Normal file
0
cas/cas-server/src/main/jib/docker/entrypoint.sh → security-modules/cas/cas-server/src/main/jib/docker/entrypoint.sh
Executable file → Normal file
|
@ -12,7 +12,7 @@
|
|||
<groupId>com.baeldung</groupId>
|
||||
<artifactId>parent-boot-2</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<relativePath>../parent-boot-2</relativePath>
|
||||
<relativePath>../../parent-boot-2</relativePath>
|
||||
</parent>
|
||||
|
||||
<modules>
|
|
@ -1,80 +1,80 @@
|
|||
package com.baeldung.cfuaa.oauth2.client;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.oauth2.client.OAuth2AuthorizedClient;
|
||||
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService;
|
||||
import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken;
|
||||
import org.springframework.security.oauth2.core.OAuth2AccessToken;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.client.HttpClientErrorException;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
@RestController
|
||||
public class CFUAAOAuth2ClientController {
|
||||
|
||||
@Value("${resource.server.url}")
|
||||
private String remoteResourceServer;
|
||||
|
||||
private RestTemplate restTemplate;
|
||||
|
||||
private OAuth2AuthorizedClientService authorizedClientService;
|
||||
|
||||
public CFUAAOAuth2ClientController(OAuth2AuthorizedClientService authorizedClientService) {
|
||||
this.authorizedClientService = authorizedClientService;
|
||||
this.restTemplate = new RestTemplate();
|
||||
}
|
||||
|
||||
@RequestMapping("/")
|
||||
public String index(OAuth2AuthenticationToken authenticationToken) {
|
||||
OAuth2AuthorizedClient oAuth2AuthorizedClient = this.authorizedClientService.loadAuthorizedClient(authenticationToken.getAuthorizedClientRegistrationId(), authenticationToken.getName());
|
||||
OAuth2AccessToken oAuth2AccessToken = oAuth2AuthorizedClient.getAccessToken();
|
||||
|
||||
String response = "Hello, " + authenticationToken.getPrincipal().getName();
|
||||
response += "</br></br>";
|
||||
response += "Here is your accees token :</br>" + oAuth2AccessToken.getTokenValue();
|
||||
response += "</br>";
|
||||
response += "</br>You can use it to call these Resource Server APIs:";
|
||||
response += "</br></br>";
|
||||
response += "<a href='/read'>Call Resource Server Read API</a>";
|
||||
response += "</br>";
|
||||
response += "<a href='/write'>Call Resource Server Write API</a>";
|
||||
return response;
|
||||
}
|
||||
|
||||
@RequestMapping("/read")
|
||||
public String read(OAuth2AuthenticationToken authenticationToken) {
|
||||
String url = remoteResourceServer + "/read";
|
||||
return callResourceServer(authenticationToken, url);
|
||||
}
|
||||
|
||||
@RequestMapping("/write")
|
||||
public String write(OAuth2AuthenticationToken authenticationToken) {
|
||||
String url = remoteResourceServer + "/write";
|
||||
return callResourceServer(authenticationToken, url);
|
||||
}
|
||||
|
||||
private String callResourceServer(OAuth2AuthenticationToken authenticationToken, String url) {
|
||||
OAuth2AuthorizedClient oAuth2AuthorizedClient = this.authorizedClientService.loadAuthorizedClient(authenticationToken.getAuthorizedClientRegistrationId(), authenticationToken.getName());
|
||||
OAuth2AccessToken oAuth2AccessToken = oAuth2AuthorizedClient.getAccessToken();
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.add("Authorization", "Bearer " + oAuth2AccessToken.getTokenValue());
|
||||
|
||||
HttpEntity<String> entity = new HttpEntity<>("parameters", headers);
|
||||
ResponseEntity<String> responseEntity = null;
|
||||
|
||||
String response = null;
|
||||
try {
|
||||
responseEntity = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
|
||||
response = responseEntity.getBody();
|
||||
} catch (HttpClientErrorException e) {
|
||||
response = e.getMessage();
|
||||
}
|
||||
return response;
|
||||
}
|
||||
package com.baeldung.cfuaa.oauth2.client;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.oauth2.client.OAuth2AuthorizedClient;
|
||||
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService;
|
||||
import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken;
|
||||
import org.springframework.security.oauth2.core.OAuth2AccessToken;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.client.HttpClientErrorException;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
@RestController
|
||||
public class CFUAAOAuth2ClientController {
|
||||
|
||||
@Value("${resource.server.url}")
|
||||
private String remoteResourceServer;
|
||||
|
||||
private RestTemplate restTemplate;
|
||||
|
||||
private OAuth2AuthorizedClientService authorizedClientService;
|
||||
|
||||
public CFUAAOAuth2ClientController(OAuth2AuthorizedClientService authorizedClientService) {
|
||||
this.authorizedClientService = authorizedClientService;
|
||||
this.restTemplate = new RestTemplate();
|
||||
}
|
||||
|
||||
@RequestMapping("/")
|
||||
public String index(OAuth2AuthenticationToken authenticationToken) {
|
||||
OAuth2AuthorizedClient oAuth2AuthorizedClient = this.authorizedClientService.loadAuthorizedClient(authenticationToken.getAuthorizedClientRegistrationId(), authenticationToken.getName());
|
||||
OAuth2AccessToken oAuth2AccessToken = oAuth2AuthorizedClient.getAccessToken();
|
||||
|
||||
String response = "Hello, " + authenticationToken.getPrincipal().getName();
|
||||
response += "</br></br>";
|
||||
response += "Here is your accees token :</br>" + oAuth2AccessToken.getTokenValue();
|
||||
response += "</br>";
|
||||
response += "</br>You can use it to call these Resource Server APIs:";
|
||||
response += "</br></br>";
|
||||
response += "<a href='/read'>Call Resource Server Read API</a>";
|
||||
response += "</br>";
|
||||
response += "<a href='/write'>Call Resource Server Write API</a>";
|
||||
return response;
|
||||
}
|
||||
|
||||
@RequestMapping("/read")
|
||||
public String read(OAuth2AuthenticationToken authenticationToken) {
|
||||
String url = remoteResourceServer + "/read";
|
||||
return callResourceServer(authenticationToken, url);
|
||||
}
|
||||
|
||||
@RequestMapping("/write")
|
||||
public String write(OAuth2AuthenticationToken authenticationToken) {
|
||||
String url = remoteResourceServer + "/write";
|
||||
return callResourceServer(authenticationToken, url);
|
||||
}
|
||||
|
||||
private String callResourceServer(OAuth2AuthenticationToken authenticationToken, String url) {
|
||||
OAuth2AuthorizedClient oAuth2AuthorizedClient = this.authorizedClientService.loadAuthorizedClient(authenticationToken.getAuthorizedClientRegistrationId(), authenticationToken.getName());
|
||||
OAuth2AccessToken oAuth2AccessToken = oAuth2AuthorizedClient.getAccessToken();
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.add("Authorization", "Bearer " + oAuth2AccessToken.getTokenValue());
|
||||
|
||||
HttpEntity<String> entity = new HttpEntity<>("parameters", headers);
|
||||
ResponseEntity<String> responseEntity = null;
|
||||
|
||||
String response = null;
|
||||
try {
|
||||
responseEntity = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
|
||||
response = responseEntity.getBody();
|
||||
} catch (HttpClientErrorException e) {
|
||||
response = e.getMessage();
|
||||
}
|
||||
return response;
|
||||
}
|
||||
}
|
|
@ -1,28 +1,28 @@
|
|||
package com.baeldung.cfuaa.oauth2.resourceserver;
|
||||
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
import org.springframework.security.oauth2.jwt.Jwt;
|
||||
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.security.Principal;
|
||||
|
||||
@RestController
|
||||
public class CFUAAOAuth2ResourceServerRestController {
|
||||
|
||||
@GetMapping("/")
|
||||
public String index(@AuthenticationPrincipal Jwt jwt) {
|
||||
return String.format("Hello, %s!", jwt.getSubject());
|
||||
}
|
||||
|
||||
@GetMapping("/read")
|
||||
public String read(JwtAuthenticationToken jwtAuthenticationToken) {
|
||||
return "Hello read: " + jwtAuthenticationToken.getTokenAttributes();
|
||||
}
|
||||
|
||||
@GetMapping("/write")
|
||||
public String write(Principal principal) {
|
||||
return "Hello write: " + principal.getName();
|
||||
}
|
||||
}
|
||||
package com.baeldung.cfuaa.oauth2.resourceserver;
|
||||
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
import org.springframework.security.oauth2.jwt.Jwt;
|
||||
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.security.Principal;
|
||||
|
||||
@RestController
|
||||
public class CFUAAOAuth2ResourceServerRestController {
|
||||
|
||||
@GetMapping("/")
|
||||
public String index(@AuthenticationPrincipal Jwt jwt) {
|
||||
return String.format("Hello, %s!", jwt.getSubject());
|
||||
}
|
||||
|
||||
@GetMapping("/read")
|
||||
public String read(JwtAuthenticationToken jwtAuthenticationToken) {
|
||||
return "Hello read: " + jwtAuthenticationToken.getTokenAttributes();
|
||||
}
|
||||
|
||||
@GetMapping("/write")
|
||||
public String write(Principal principal) {
|
||||
return "Hello write: " + principal.getName();
|
||||
}
|
||||
}
|
|
@ -1,21 +1,21 @@
|
|||
package com.baeldung.cfuaa.oauth2.resourceserver;
|
||||
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
|
||||
@EnableWebSecurity
|
||||
public class CFUAAOAuth2ResourceServerSecurityConfiguration extends WebSecurityConfigurerAdapter {
|
||||
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
http
|
||||
.authorizeRequests()
|
||||
.antMatchers("/read/**").hasAuthority("SCOPE_resource.read")
|
||||
.antMatchers("/write/**").hasAuthority("SCOPE_resource.write")
|
||||
.anyRequest().authenticated()
|
||||
.and()
|
||||
.oauth2ResourceServer()
|
||||
.jwt();
|
||||
}
|
||||
package com.baeldung.cfuaa.oauth2.resourceserver;
|
||||
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
|
||||
@EnableWebSecurity
|
||||
public class CFUAAOAuth2ResourceServerSecurityConfiguration extends WebSecurityConfigurerAdapter {
|
||||
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
http
|
||||
.authorizeRequests()
|
||||
.antMatchers("/read/**").hasAuthority("SCOPE_resource.read")
|
||||
.antMatchers("/write/**").hasAuthority("SCOPE_resource.write")
|
||||
.anyRequest().authenticated()
|
||||
.and()
|
||||
.oauth2ResourceServer()
|
||||
.jwt();
|
||||
}
|
||||
}
|
|
@ -11,7 +11,7 @@
|
|||
<groupId>com.baeldung</groupId>
|
||||
<artifactId>parent-boot-2</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<relativePath>../parent-boot-2</relativePath>
|
||||
<relativePath>../../parent-boot-2</relativePath>
|
||||
</parent>
|
||||
|
||||
<modules>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue