Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
符节科技
Jap
提交
5627213c
Jap
项目概览
符节科技
/
Jap
大约 1 年 前同步成功
通知
91
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Jap
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5627213c
编写于
5月 08, 2021
作者:
智布道
👁
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
Add `IdsUserStoreService` interface
上级
8d2fb73e
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
108 addition
and
5 deletion
+108
-5
jap-ids/src/main/java/com/fujieid/jap/ids/JapIds.java
jap-ids/src/main/java/com/fujieid/jap/ids/JapIds.java
+46
-5
jap-ids/src/main/java/com/fujieid/jap/ids/service/IdsUserStoreService.java
...java/com/fujieid/jap/ids/service/IdsUserStoreService.java
+62
-0
未找到文件。
jap-ids/src/main/java/com/fujieid/jap/ids/JapIds.java
浏览文件 @
5627213c
...
...
@@ -15,11 +15,17 @@
*/
package
com.fujieid.jap.ids
;
import
com.fujieid.jap.core.spi.JapServiceLoader
;
import
com.fujieid.jap.ids.config.IdsConfig
;
import
com.fujieid.jap.ids.context.IdsContext
;
import
com.fujieid.jap.ids.exception.IdsException
;
import
com.fujieid.jap.ids.model.IdsConsts
;
import
com.fujieid.jap.ids.model.UserInfo
;
import
com.fujieid.jap.ids.pipeline.IdsFilterPipeline
;
import
com.fujieid.jap.ids.pipeline.IdsSignInPipeline
;
import
com.fujieid.jap.ids.service.IdsClientDetailService
;
import
com.fujieid.jap.ids.service.IdsIdentityService
;
import
com.fujieid.jap.ids.service.IdsUserService
;
import
com.fujieid.jap.ids.service.IdsUserStoreService
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.Serializable
;
...
...
@@ -32,18 +38,50 @@ import java.io.Serializable;
* @since 1.0.0
*/
public
class
JapIds
implements
Serializable
{
private
static
final
String
UNREGISTERED_IDS_CONTEXT
=
"Unregistered ids context.Please use `JapIds.registerContext(IdsContext)` to register ids context."
;
private
static
IdsContext
context
;
private
JapIds
()
{
}
public
static
void
registerContext
(
IdsContext
idsContext
)
{
if
(
null
==
context
)
{
throw
new
IdsException
(
UNREGISTERED_IDS_CONTEXT
);
}
context
=
idsContext
;
loadService
();
loadPipeline
();
}
private
static
void
loadService
()
{
if
(
null
==
context
.
getClientDetailService
())
{
context
.
setClientDetailService
(
JapServiceLoader
.
loadFirst
(
IdsClientDetailService
.
class
));
}
if
(
null
==
context
.
getIdentityService
())
{
context
.
setIdentityService
(
JapServiceLoader
.
loadFirst
(
IdsIdentityService
.
class
));
}
if
(
null
==
context
.
getUserService
())
{
context
.
setUserService
(
JapServiceLoader
.
loadFirst
(
IdsUserService
.
class
));
}
if
(
null
==
context
.
getUserStoreService
())
{
context
.
setUserStoreService
(
JapServiceLoader
.
loadFirst
(
IdsUserStoreService
.
class
));
}
}
private
static
void
loadPipeline
()
{
if
(
null
==
context
.
getFilterPipeline
())
{
context
.
setFilterPipeline
(
JapServiceLoader
.
loadFirst
(
IdsFilterPipeline
.
class
));
}
if
(
null
==
context
.
getSigninPipeline
())
{
context
.
setSigninPipeline
(
JapServiceLoader
.
loadFirst
(
IdsSignInPipeline
.
class
));
}
}
public
static
IdsContext
getContext
()
{
if
(
null
==
context
)
{
throw
new
IdsException
(
"Unregistered ids context.Please use `JapIds.registerContext(IdsContext)` to register ids context."
);
throw
new
IdsException
(
UNREGISTERED_IDS_CONTEXT
);
}
return
context
;
}
...
...
@@ -53,15 +91,18 @@ public class JapIds implements Serializable {
}
public
static
void
saveUserInfo
(
UserInfo
userInfo
,
HttpServletRequest
request
)
{
request
.
getSession
().
setAttribute
(
IdsConsts
.
OAUTH_USERINFO_CACHE_KEY
,
userInfo
);
IdsContext
context
=
getContext
();
context
.
getUserStoreService
().
save
(
userInfo
,
request
);
}
public
static
UserInfo
getUserInfo
(
HttpServletRequest
request
)
{
return
(
UserInfo
)
request
.
getSession
().
getAttribute
(
IdsConsts
.
OAUTH_USERINFO_CACHE_KEY
);
IdsContext
context
=
getContext
();
return
context
.
getUserStoreService
().
get
(
request
);
}
public
static
void
removeUserInfo
(
HttpServletRequest
request
)
{
request
.
getSession
().
removeAttribute
(
IdsConsts
.
OAUTH_USERINFO_CACHE_KEY
);
IdsContext
context
=
getContext
();
context
.
getUserStoreService
().
remove
(
request
);
}
public
static
IdsConfig
getIdsConfig
()
{
...
...
jap-ids/src/main/java/com/fujieid/jap/ids/service/IdsUserStoreService.java
0 → 100644
浏览文件 @
5627213c
/*
* Copyright (c) 2020-2040, 北京符节科技有限公司 (support@fujieid.com & https://www.fujieid.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.fujieid.jap.ids.service
;
import
com.fujieid.jap.ids.model.IdsConsts
;
import
com.fujieid.jap.ids.model.UserInfo
;
import
javax.servlet.http.HttpServletRequest
;
/**
* When the user logs in, store and operate the user's login information
*
* @author yadong.zhang (yadong.zhang0415(a)gmail.com)
* @version 1.0.0
* @since 1.0.2
*/
public
interface
IdsUserStoreService
{
/**
* Save user data, and store user information in {@link javax.servlet.http.HttpSession} by default.
* <p>
* Developers can implement this method to save user information in other media, such as cache, database, etc.
*
* @param userInfo User information after login
* @param request current HTTP request
*/
default
void
save
(
UserInfo
userInfo
,
HttpServletRequest
request
)
{
request
.
getSession
().
setAttribute
(
IdsConsts
.
OAUTH_USERINFO_CACHE_KEY
,
userInfo
);
}
/**
* Get logged-in user information
*
* @param request current HTTP request
* @return UserInfo
*/
default
UserInfo
get
(
HttpServletRequest
request
)
{
return
(
UserInfo
)
request
.
getSession
().
getAttribute
(
IdsConsts
.
OAUTH_USERINFO_CACHE_KEY
);
}
/**
* Delete logged-in user information
*
* @param request current HTTP request
*/
default
void
remove
(
HttpServletRequest
request
)
{
request
.
getSession
().
removeAttribute
(
IdsConsts
.
OAUTH_USERINFO_CACHE_KEY
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录