diff --git a/zlt-demo/sso-demo/README.md b/zlt-demo/sso-demo/README.md
index f95b79b8486bfc60de09254715d314fac4605157..bc41b6eca6e15e89e87cab694ab67c14b4e8c593 100644
--- a/zlt-demo/sso-demo/README.md
+++ b/zlt-demo/sso-demo/README.md
@@ -1,21 +1,4 @@
-## **详细的原理和注意事项请查看**
-[单点登录详解](https://www.kancloud.cn/zlt2000/microservices-platform/1515193)
+* **ss-sso**:使用springSecurity来实现自动单点登录,非前后端分离
+* **web-sso**:前后端分离的单点登录
-
-## 启动以下服务
-
-1. zlt-uaa:统一认证中心
-2. user-center:用户服务
-3. sc-gateway:api网关
-4. back-web:webApp应用前端页面
-5. sso-demo:单点登录demo(zlt应用)
-
-
-
-## 测试步骤
-
-1. 登录webApp应用:
- 通过地址 http://127.0.0.1:8066 先登录webApp应用
-2. 访问zlt应用(单点成功):
- 在浏览器打开一个新的页签(共享session),通过地址 http://127.0.0.1:8080 访问zlt应用,单点登录成功显示当前登录用户名、权限、应用id信息
\ No newline at end of file
diff --git a/zlt-demo/sso-demo/pom.xml b/zlt-demo/sso-demo/pom.xml
index 2d296ec9207eac8655139844224b975c6cbc0ba7..abb1e27709a12b589ae03e42b16647851eadeb4f 100644
--- a/zlt-demo/sso-demo/pom.xml
+++ b/zlt-demo/sso-demo/pom.xml
@@ -7,44 +7,12 @@
3.3.0
sso-demo
- 单点登录demo
-
-
-
- com.zlt
- zlt-common-spring-boot-starter
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.cloud
- spring-cloud-starter-oauth2
-
-
- org.springframework.boot
- spring-boot-starter-thymeleaf
-
-
- com.baomidou
- mybatis-plus-extension
-
-
+ pom
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
- repackage
-
-
-
-
-
-
-
+
+
+ ss-sso
+
+ web-sso
+
+
\ No newline at end of file
diff --git a/zlt-demo/sso-demo/ss-sso/README.md b/zlt-demo/sso-demo/ss-sso/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..abda604b1da5f4d1d11b127169c4a0144b94e612
--- /dev/null
+++ b/zlt-demo/sso-demo/ss-sso/README.md
@@ -0,0 +1,21 @@
+## **详细的原理和注意事项请查看**
+[单点登录详解](https://www.kancloud.cn/zlt2000/microservices-platform/1515193)
+
+
+
+## 启动以下服务
+
+1. zlt-uaa:统一认证中心
+2. user-center:用户服务
+3. sc-gateway:api网关
+4. back-web:webApp应用前端页面
+5. ss-sso:单点登录demo(zlt应用)
+
+
+
+## 测试步骤
+
+1. 登录webApp应用:
+ 通过地址 http://127.0.0.1:8066 先登录webApp应用
+2. 访问zlt应用(单点成功):
+ 在浏览器打开一个新的页签(共享session),通过地址 http://127.0.0.1:8080 访问zlt应用,单点登录成功显示当前登录用户名、权限、应用id信息
\ No newline at end of file
diff --git a/zlt-demo/sso-demo/ss-sso/pom.xml b/zlt-demo/sso-demo/ss-sso/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ca6085968d590011e666bcb54bccecf2aadd4de1
--- /dev/null
+++ b/zlt-demo/sso-demo/ss-sso/pom.xml
@@ -0,0 +1,50 @@
+
+ 4.0.0
+
+ com.zlt
+ sso-demo
+ 3.3.0
+
+ ss-sso
+ springSecurity单点登录demo
+
+
+
+ com.zlt
+ zlt-common-spring-boot-starter
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.cloud
+ spring-cloud-starter-oauth2
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
+
+ com.baomidou
+ mybatis-plus-extension
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+
+
diff --git a/zlt-demo/sso-demo/src/main/java/com/sso/demo/SSOApplication.java b/zlt-demo/sso-demo/ss-sso/src/main/java/com/sso/demo/SSOApplication.java
similarity index 100%
rename from zlt-demo/sso-demo/src/main/java/com/sso/demo/SSOApplication.java
rename to zlt-demo/sso-demo/ss-sso/src/main/java/com/sso/demo/SSOApplication.java
diff --git a/zlt-demo/sso-demo/src/main/java/com/sso/demo/config/SecurityConfig.java b/zlt-demo/sso-demo/ss-sso/src/main/java/com/sso/demo/config/SecurityConfig.java
similarity index 100%
rename from zlt-demo/sso-demo/src/main/java/com/sso/demo/config/SecurityConfig.java
rename to zlt-demo/sso-demo/ss-sso/src/main/java/com/sso/demo/config/SecurityConfig.java
diff --git a/zlt-demo/sso-demo/src/main/java/com/sso/demo/config/SsoLogoutSuccessHandler.java b/zlt-demo/sso-demo/ss-sso/src/main/java/com/sso/demo/config/SsoLogoutSuccessHandler.java
similarity index 100%
rename from zlt-demo/sso-demo/src/main/java/com/sso/demo/config/SsoLogoutSuccessHandler.java
rename to zlt-demo/sso-demo/ss-sso/src/main/java/com/sso/demo/config/SsoLogoutSuccessHandler.java
diff --git a/zlt-demo/sso-demo/src/main/java/com/sso/demo/controller/HomeController.java b/zlt-demo/sso-demo/ss-sso/src/main/java/com/sso/demo/controller/HomeController.java
similarity index 100%
rename from zlt-demo/sso-demo/src/main/java/com/sso/demo/controller/HomeController.java
rename to zlt-demo/sso-demo/ss-sso/src/main/java/com/sso/demo/controller/HomeController.java
diff --git a/zlt-demo/sso-demo/src/main/resources/bootstrap.yml b/zlt-demo/sso-demo/ss-sso/src/main/resources/bootstrap.yml
similarity index 81%
rename from zlt-demo/sso-demo/src/main/resources/bootstrap.yml
rename to zlt-demo/sso-demo/ss-sso/src/main/resources/bootstrap.yml
index 7fd093e2e205ee8e9ff502e6d1485e9f4a86dd0f..97303074458a771361d03e7613dd13541ce7eb7f 100644
--- a/zlt-demo/sso-demo/src/main/resources/bootstrap.yml
+++ b/zlt-demo/sso-demo/ss-sso/src/main/resources/bootstrap.yml
@@ -8,7 +8,7 @@ spring:
zlt:
api-uaa:
url: http://127.0.0.1:9900/api-uaa/oauth
- logout-uri: ${zlt.api-uaa.url}/remove/token?redirectUri=http://127.0.0.1:8080&access_token=
+ logout-uri: ${zlt.api-uaa.url}/remove/token?redirect_uri=http://127.0.0.1:8080&access_token=
security:
oauth2:
diff --git a/zlt-demo/sso-demo/src/main/resources/templates/index.html b/zlt-demo/sso-demo/ss-sso/src/main/resources/templates/index.html
similarity index 100%
rename from zlt-demo/sso-demo/src/main/resources/templates/index.html
rename to zlt-demo/sso-demo/ss-sso/src/main/resources/templates/index.html
diff --git "a/zlt-demo/sso-demo/\345\215\225\347\202\271\347\231\273\345\275\225\346\236\266\346\236\204\345\233\276.jpg" "b/zlt-demo/sso-demo/ss-sso/\345\215\225\347\202\271\347\231\273\345\275\225\346\236\266\346\236\204\345\233\276.jpg"
similarity index 100%
rename from "zlt-demo/sso-demo/\345\215\225\347\202\271\347\231\273\345\275\225\346\236\266\346\236\204\345\233\276.jpg"
rename to "zlt-demo/sso-demo/ss-sso/\345\215\225\347\202\271\347\231\273\345\275\225\346\236\266\346\236\204\345\233\276.jpg"
diff --git a/zlt-demo/sso-demo/web-sso/README.md b/zlt-demo/sso-demo/web-sso/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..450fa350b0c7fece9dd431884a6a784e51d9affd
--- /dev/null
+++ b/zlt-demo/sso-demo/web-sso/README.md
@@ -0,0 +1,21 @@
+## **详细的原理和注意事项请查看**
+[单点登录详解](https://www.kancloud.cn/zlt2000/microservices-platform/1515193)
+
+
+
+## 启动以下服务
+
+1. zlt-uaa:统一认证中心
+2. user-center:用户服务
+3. sc-gateway:api网关
+4. back-web:webApp应用前端页面
+5. web-sso:单点登录demo(app应用)
+
+
+
+## 测试步骤
+
+1. 登录webApp应用:
+ 通过地址 http://127.0.0.1:8066 先登录webApp应用
+2. 访问app应用(单点成功):
+ 在浏览器打开一个新的页签(共享session),通过地址 http://127.0.0.1:8081/index.html 访问app应用静态页面,单点登录成功显示当前登录用户名、应用id、token信息
\ No newline at end of file
diff --git a/zlt-demo/sso-demo/web-sso/pom.xml b/zlt-demo/sso-demo/web-sso/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..475630b259859522f54119242e233aaa1d30e332
--- /dev/null
+++ b/zlt-demo/sso-demo/web-sso/pom.xml
@@ -0,0 +1,38 @@
+
+ 4.0.0
+
+ com.zlt
+ sso-demo
+ 3.3.0
+
+ web-sso
+ 前后端分离单点登录demo
+
+
+
+ com.zlt
+ zlt-common-spring-boot-starter
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+
+
diff --git a/zlt-demo/sso-demo/web-sso/src/main/java/com/sso/demo/WebSSOApplication.java b/zlt-demo/sso-demo/web-sso/src/main/java/com/sso/demo/WebSSOApplication.java
new file mode 100644
index 0000000000000000000000000000000000000000..71ea7e7871c1b29c2d725739c52b66c40ea545a4
--- /dev/null
+++ b/zlt-demo/sso-demo/web-sso/src/main/java/com/sso/demo/WebSSOApplication.java
@@ -0,0 +1,18 @@
+package com.sso.demo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @author zlt
+ * @date 2020/3/10
+ *
+ * Blog: https://blog.csdn.net/zlt2000
+ * Github: https://github.com/zlt2000
+ */
+@SpringBootApplication
+public class WebSSOApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(WebSSOApplication.class, args);
+ }
+}
diff --git a/zlt-demo/sso-demo/web-sso/src/main/java/com/sso/demo/controller/ApiController.java b/zlt-demo/sso-demo/web-sso/src/main/java/com/sso/demo/controller/ApiController.java
new file mode 100644
index 0000000000000000000000000000000000000000..d5929a9974c9af5615c3f6829bc193345af6f100
--- /dev/null
+++ b/zlt-demo/sso-demo/web-sso/src/main/java/com/sso/demo/controller/ApiController.java
@@ -0,0 +1,89 @@
+package com.sso.demo.controller;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import sun.misc.BASE64Encoder;
+
+import java.io.UnsupportedEncodingException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author zlt
+ * @date 2020/3/10
+ *
+ * Blog: https://blog.csdn.net/zlt2000
+ * Github: https://github.com/zlt2000
+ */
+@RestController
+public class ApiController {
+ @Value("${zlt.sso.client-id:}")
+ private String clientId;
+
+ @Value("${zlt.sso.client-secret:}")
+ private String clientSecret;
+
+ @Value("${zlt.sso.redirect-uri:}")
+ private String redirectUri;
+
+ @Value("${zlt.sso.access-token-uri:}")
+ private String accessTokenUri;
+
+ @Value("${zlt.sso.user-info-uri:}")
+ private String userInfoUri;
+
+ @GetMapping("/token/{code}")
+ public Map tokenInfo(@PathVariable String code) throws UnsupportedEncodingException {
+ //获取token
+ Map tokenMap = getAccessToken(code);
+ String accessToken = (String)tokenMap.get("access_token");
+ //获取用户信息
+ Map userMap = getUserInfo(accessToken);
+
+ Map result = new HashMap(2);
+ result.put("tokenInfo", tokenMap);
+ result.put("userInfo", userMap);
+ return result;
+ }
+
+ /**
+ * 获取token
+ */
+ public Map getAccessToken(String code) throws UnsupportedEncodingException {
+ RestTemplate restTemplate = new RestTemplate();
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+ byte[] authorization = (clientId + ":" + clientSecret).getBytes("UTF-8");
+ BASE64Encoder encoder = new BASE64Encoder();
+ String base64Auth = encoder.encode(authorization);
+ headers.add("Authorization", "Basic " + base64Auth);
+
+ MultiValueMap param = new LinkedMultiValueMap<>();
+ param.add("code", code);
+ param.add("grant_type", "authorization_code");
+ param.add("redirect_uri", redirectUri);
+ param.add("scope", "app");
+ HttpEntity> request = new HttpEntity<>(param, headers);
+ ResponseEntity