diff --git a/app.platform/build.gradle b/app.platform/build.gradle
index a71f9c0a..48eb40af 100644
--- a/app.platform/build.gradle
+++ b/app.platform/build.gradle
@@ -14,8 +14,8 @@ dependencies {
project(":io.sc.platform.app"),
project(":io.sc.platform.developer"),
project(":io.sc.platform.security.oauth2.server.authorization"),
- //project(":io.sc.platform.security.oauth2.server.resource"),
- //project(":io.sc.platform.security.loginform"),
+ project(":io.sc.platform.security.oauth2.server.resource"),
+ project(":io.sc.platform.security.loginform"),
/*
project(":io.sc.platform.scheduler.manager"),
diff --git a/app.platform/src/main/resources/app/platform/i18n/messages_zh_CN.properties b/app.platform/src/main/resources/app/platform/i18n/messages_zh_CN.properties
index 01022b8f..0d793ded 100644
--- a/app.platform/src/main/resources/app/platform/i18n/messages_zh_CN.properties
+++ b/app.platform/src/main/resources/app/platform/i18n/messages_zh_CN.properties
@@ -1,3 +1,3 @@
-application.title=\u5B87\u4FE1\u79D1\u6280-\u98CE\u9669\u7BA1\u7406\u5E73\u53F0
+application.title=\u98CE\u9669\u7BA1\u7406\u5E73\u53F0
application.version=$version
application.copyright=Copyright \u00A9 2019\u20132022
\ No newline at end of file
diff --git a/default-authorizationserver/src/main/java/sample/DefaultAuthorizationServerApplication.java b/default-authorizationserver/src/main/java/sample/DefaultAuthorizationServerApplication.java
index 17a7ddcf..ebe70178 100644
--- a/default-authorizationserver/src/main/java/sample/DefaultAuthorizationServerApplication.java
+++ b/default-authorizationserver/src/main/java/sample/DefaultAuthorizationServerApplication.java
@@ -18,6 +18,8 @@ package sample;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import java.util.Base64;
+
/**
* @author Joe Grandja
* @since 0.0.1
@@ -26,7 +28,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
public class DefaultAuthorizationServerApplication {
public static void main(String[] args) {
- SpringApplication.run(DefaultAuthorizationServerApplication.class, args);
+ String base64 =Base64.getEncoder().encodeToString("platform-oidc:secret".getBytes());
+ System.out.println(base64);
+ //http://localhost:8080/oauth2/authorize?client_secret=secret&client_id=platform-oidc&response_type=code&redirect_uri=http://localhost:8080/oauth2/authorized-oidc
+ //SpringApplication.run(DefaultAuthorizationServerApplication.class, args);
}
}
diff --git a/io.sc.platform.core.frontend/src/platform/index.ts b/io.sc.platform.core.frontend/src/platform/index.ts
index 76db586f..fc178516 100644
--- a/io.sc.platform.core.frontend/src/platform/index.ts
+++ b/io.sc.platform.core.frontend/src/platform/index.ts
@@ -86,6 +86,7 @@ export { I18nMessageManager } from './plugin';
export { MenuManager } from './plugin';
export { MockManager } from './plugin';
export { NotifyManager } from './plugin';
+export { Oauth2Manager } from './plugin';
export { RouterManager } from './plugin';
export { SessionManager } from './plugin';
export { TagViewManager } from './plugin';
diff --git a/io.sc.platform.core.frontend/src/platform/layout/WBasicLayout.vue b/io.sc.platform.core.frontend/src/platform/layout/WBasicLayout.vue
index ce90dada..0de1a54f 100644
--- a/io.sc.platform.core.frontend/src/platform/layout/WBasicLayout.vue
+++ b/io.sc.platform.core.frontend/src/platform/layout/WBasicLayout.vue
@@ -3,8 +3,8 @@
diff --git a/io.sc.platform.core.frontend/src/views/testcase/maxgraph/maxgraph.vue b/io.sc.platform.core.frontend/src/views/testcase/maxgraph/maxgraph.vue
index 28f6574f..a9a2498a 100644
--- a/io.sc.platform.core.frontend/src/views/testcase/maxgraph/maxgraph.vue
+++ b/io.sc.platform.core.frontend/src/views/testcase/maxgraph/maxgraph.vue
@@ -5,6 +5,7 @@
import { onMounted, vue } from 'vue';
import { type CellStyle, Graph, InternalEvent } from '@maxgraph/core';
+/*
onMounted(() => {
const container = document.getElementById('graph-container');
// Disables the built-in context menu
@@ -48,4 +49,5 @@ onMounted(() => {
});
});
});
+*/
diff --git a/io.sc.platform.developer.doc/asciidoc/9999-appendix/oauth2/oauth2.adoc b/io.sc.platform.developer.doc/asciidoc/9999-appendix/oauth2/oauth2.adoc
index f273cf54..18eb252b 100644
--- a/io.sc.platform.developer.doc/asciidoc/9999-appendix/oauth2/oauth2.adoc
+++ b/io.sc.platform.developer.doc/asciidoc/9999-appendix/oauth2/oauth2.adoc
@@ -220,35 +220,18 @@ private_key_jwt 和 client_secret_jwt 唯一的区别就是生成 JWT 的方式
| token_type_hint | 请求 | |
|===
+== 示例
=== 获取授权码
-http://localhost:8080/oauth2/authorize?client_secret=secret&client_id=platform-oidc&response_type=code&redirect_uri=http://localhost:8080/oauth2/authorized-oidc
-|===
-| 参数名 | 参数值 | 说明
-| client_id | | 注册客户端 ID
-| response_type | code | 响应类型
-|
-|===
+在浏览器地址栏中输入:
+
+http://localhost:8080/oauth2/authorize?client_id=platform-oidc&client_secret=secret&response_type=code&redirect_uri=http://localhost:8080/oauth2/authorized-oidc
+
+image::9999-appendix/oauth2/010.png[,100%]
+
+如果还未登录过,系统重定向到登录页面
+
+image::9999-appendix/oauth2/011.png[,80%]
+
+输入登录用户名和密码,成功登录后,返回授权码。
-org.springframework.security.web.session.DisableEncodeUrlFilter,
-org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter,
-org.springframework.security.oauth2.server.authorization.config.annotation.web.configurers.AuthorizationServerContextFilter,
-org.springframework.security.web.context.SecurityContextPersistenceFilter,
-org.springframework.security.web.header.HeaderWriterFilter,
-org.springframework.security.web.csrf.CsrfFilter,
-org.springframework.security.web.authentication.logout.LogoutFilter,
-org.springframework.security.oauth2.server.authorization.web.OAuth2AuthorizationServerMetadataEndpointFilter,
-org.springframework.security.oauth2.server.authorization.web.OAuth2AuthorizationEndpointFilter,
-org.springframework.security.oauth2.server.authorization.oidc.web.OidcProviderConfigurationEndpointFilter,
-org.springframework.security.oauth2.server.authorization.web.NimbusJwkSetEndpointFilter,
-org.springframework.security.oauth2.server.authorization.web.OAuth2ClientAuthenticationFilter,
-org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter,
-org.springframework.security.web.savedrequest.RequestCacheAwareFilter,
-org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter,
-org.springframework.security.web.authentication.AnonymousAuthenticationFilter,
-org.springframework.security.web.session.SessionManagementFilter,
-org.springframework.security.web.access.ExceptionTranslationFilter,
-org.springframework.security.web.access.intercept.FilterSecurityInterceptor,
-org.springframework.security.oauth2.server.authorization.web.OAuth2TokenEndpointFilter,
-org.springframework.security.oauth2.server.authorization.web.OAuth2TokenIntrospectionEndpointFilter,
-org.springframework.security.oauth2.server.authorization.web.OAuth2TokenRevocationEndpointFilter,
-org.springframework.security.oauth2.server.authorization.oidc.web.OidcUserInfoEndpointFilter
+=== 通过授权码获取令牌
diff --git a/io.sc.platform.developer.doc/asciidoc/index.adoc b/io.sc.platform.developer.doc/asciidoc/index.adoc
index d4de37bb..f87456df 100644
--- a/io.sc.platform.developer.doc/asciidoc/index.adoc
+++ b/io.sc.platform.developer.doc/asciidoc/index.adoc
@@ -33,6 +33,7 @@
include::getting-started/getting-started.adoc[leveloffset=+1]
include::platform-extension/platform-extension.adoc[leveloffset=+1]
+include::system-design/system-design.adoc[leveloffset=+1]
include::frontend/frontend.adoc[leveloffset=+1]
include::bank-business/bank-business.adoc[leveloffset=+1]
diff --git a/io.sc.platform.developer.doc/asciidoc/resources/images/9999-appendix/oauth2/010.png b/io.sc.platform.developer.doc/asciidoc/resources/images/9999-appendix/oauth2/010.png
new file mode 100644
index 00000000..c98a98fd
Binary files /dev/null and b/io.sc.platform.developer.doc/asciidoc/resources/images/9999-appendix/oauth2/010.png differ
diff --git a/io.sc.platform.developer.doc/asciidoc/resources/images/9999-appendix/oauth2/011.png b/io.sc.platform.developer.doc/asciidoc/resources/images/9999-appendix/oauth2/011.png
new file mode 100644
index 00000000..3406da93
Binary files /dev/null and b/io.sc.platform.developer.doc/asciidoc/resources/images/9999-appendix/oauth2/011.png differ
diff --git a/io.sc.platform.developer.doc/asciidoc/resources/images/system-design/application-entry/001.png b/io.sc.platform.developer.doc/asciidoc/resources/images/system-design/application-entry/001.png
new file mode 100644
index 00000000..904d3616
Binary files /dev/null and b/io.sc.platform.developer.doc/asciidoc/resources/images/system-design/application-entry/001.png differ
diff --git a/io.sc.platform.developer.doc/asciidoc/resources/images/system-design/application-entry/002.png b/io.sc.platform.developer.doc/asciidoc/resources/images/system-design/application-entry/002.png
new file mode 100644
index 00000000..64fe5edf
Binary files /dev/null and b/io.sc.platform.developer.doc/asciidoc/resources/images/system-design/application-entry/002.png differ
diff --git a/io.sc.platform.developer.doc/asciidoc/resources/images/system-design/application-entry/003.png b/io.sc.platform.developer.doc/asciidoc/resources/images/system-design/application-entry/003.png
new file mode 100644
index 00000000..348a81fe
Binary files /dev/null and b/io.sc.platform.developer.doc/asciidoc/resources/images/system-design/application-entry/003.png differ
diff --git a/io.sc.platform.developer.doc/asciidoc/system-design/application-entry/application-entry.adoc b/io.sc.platform.developer.doc/asciidoc/system-design/application-entry/application-entry.adoc
new file mode 100644
index 00000000..97a105f8
--- /dev/null
+++ b/io.sc.platform.developer.doc/asciidoc/system-design/application-entry/application-entry.adoc
@@ -0,0 +1,36 @@
+= 应用入口 (War 包场景)
+
+== 核心原理
+
+image::system-design/application-entry/001.png[,100%]
+
+<1> 应用入口 URL
+<2> 用户登录页面
+<3> 后端处理, 返回视图。 通过查看 io.sc.platform.mvc 模块的源码,在 resources/template 目录中没有 io.sc.platform.mvc.frontend.html 模版文件,该模版文件通过以下步骤生成
+<4> io.sc.platform.mvc.frontend 是前端模块, public/index.html 文件就是首页模版文件
+<5> 构建前端,构建后的前端文件位于 dist/public/io.sc.platform.mvc.frontend 目录中
+<6> 将前端模块打包成 jar时, 将前端模块中的 dist/public/io.sc.platform.mvc.frontend/index.html 文件复制成 resources/template/io.sc.platform.mvc.frontend.html 文件
+
+== index.html 解析
+
+image::system-design/application-entry/002.png[,100%]
+
+该 index.html 文件需要加载 configure.js 文件,该文件包含前端运行时的最核心配置信息,主要包括:
+
+. webContextPath: 应用上下文路径
+. apiContextPaths: 默认后端 API 请求的服务地址前缀
+
+[source,javascript]
+----
+
+----
+
+[TIP]
+