+spring oauth2 example
This commit is contained in:
parent
3212ee424c
commit
ad2a2aa161
31
Java/spring/oauth2(?)/build.gradle
Normal file
31
Java/spring/oauth2(?)/build.gradle
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
plugins {
|
||||||
|
id 'java'
|
||||||
|
id 'org.springframework.boot' version '3.1.4'
|
||||||
|
id 'io.spring.dependency-management' version '1.1.3'
|
||||||
|
}
|
||||||
|
|
||||||
|
group = 'com.example'
|
||||||
|
version = '0.0.1-SNAPSHOT'
|
||||||
|
|
||||||
|
java {
|
||||||
|
sourceCompatibility = '17'
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
developmentOnly("org.springframework.boot:spring-boot-devtools")
|
||||||
|
|
||||||
|
implementation 'org.webjars:webjars-locator-core'
|
||||||
|
implementation 'org.springframework.boot:spring-boot-starter'
|
||||||
|
implementation 'org.springframework.boot:spring-boot-starter-web'
|
||||||
|
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||||
|
implementation 'org.springframework.boot:spring-boot-starter-security'
|
||||||
|
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named('test') {
|
||||||
|
useJUnitPlatform()
|
||||||
|
}
|
1
Java/spring/oauth2(?)/settings.gradle
Normal file
1
Java/spring/oauth2(?)/settings.gradle
Normal file
@ -0,0 +1 @@
|
|||||||
|
rootProject.name = 'demo'
|
@ -0,0 +1,32 @@
|
|||||||
|
package com.example.demo;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Map;
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||||
|
import org.springframework.security.oauth2.core.user.OAuth2User;
|
||||||
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||||
|
import org.springframework.security.web.authentication.HttpStatusEntryPoint;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
@RestController
|
||||||
|
public class SimpleApplication {
|
||||||
|
|
||||||
|
@GetMapping("/user")
|
||||||
|
public Map<String, Object> user(@AuthenticationPrincipal OAuth2User principal) {
|
||||||
|
return Collections.singletonMap("name", principal.getAttribute("name"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(SimpleApplication.class, args);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1 @@
|
|||||||
|
|
8
Java/spring/oauth2(?)/src/main/resources/application.yml
Normal file
8
Java/spring/oauth2(?)/src/main/resources/application.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
spring:
|
||||||
|
security:
|
||||||
|
oauth2:
|
||||||
|
client:
|
||||||
|
registration:
|
||||||
|
github:
|
||||||
|
clientId: 661e96c42931da0e9c71
|
||||||
|
clientSecret: fdcdce318e32e06e3157a81a5bbc8e96a29bc49b
|
32
Java/spring/oauth2(?)/src/main/resources/static/index.html
Normal file
32
Java/spring/oauth2(?)/src/main/resources/static/index.html
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||||
|
<title>Demo</title>
|
||||||
|
<meta name="description" content=""/>
|
||||||
|
<meta name="viewport" content="width=device-width"/>
|
||||||
|
<base href="/"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="/webjars/bootstrap/css/bootstrap.min.css"/>
|
||||||
|
<script type="text/javascript" src="/webjars/jquery/jquery.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/webjars/bootstrap/js/bootstrap.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Demo</h1>
|
||||||
|
<div class="container">
|
||||||
|
<div class="container unauthenticated">
|
||||||
|
Log in: <a href="/oauth2/authorization/github">click here</a>
|
||||||
|
</div>
|
||||||
|
<div class="container authenticated" style="display:none">
|
||||||
|
Logged in as: <span id="user"></span>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$.get("/user", function(data) {
|
||||||
|
$("#user").html(data.name);
|
||||||
|
$(".unauthenticated").hide()
|
||||||
|
$(".authenticated").show()
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,13 @@
|
|||||||
|
package com.example.demo;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
|
@SpringBootTest
|
||||||
|
class SimpleApplicationTests {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void contextLoads() {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user