+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