Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
sh-ds
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李良停
sh-ds
Commits
9dbeb922
Commit
9dbeb922
authored
Mar 22, 2021
by
喻春霖
Browse files
Options
Browse Files
Download
Plain Diff
应用推进改造
parents
0e4b0b03
764747d7
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1352 additions
and
461 deletions
+1352
-461
AuthController.java
...eall/eden/authcenter/agent/controller/AuthController.java
+100
-107
LogStatisticsController.java
.../authcenter/agent/controller/LogStatisticsController.java
+25
-5
SampleController.java
...ll/eden/authcenter/agent/controller/SampleController.java
+2
-2
application.yml
eden-authcenter-agent/src/main/resources/application.yml
+1
-1
bootstrap.yml
eden-authcenter-agent/src/main/resources/bootstrap.yml
+1
-1
ds.css
eden-authcenter-agent/src/main/resources/static/css/ds.css
+474
-236
loginSuccess.css
...nter-agent/src/main/resources/static/css/loginSuccess.css
+67
-0
main_210317.css
...enter-agent/src/main/resources/static/css/main_210317.css
+510
-0
normalize.css
...hcenter-agent/src/main/resources/static/css/normalize.css
+1
-1
bg-dp.png
...-authcenter-agent/src/main/resources/static/img/bg-dp.png
+0
-0
bg-xp.png
...-authcenter-agent/src/main/resources/static/img/bg-xp.png
+0
-0
btn-szjc.png
...thcenter-agent/src/main/resources/static/img/btn-szjc.png
+0
-0
btn-tyrz.png
...thcenter-agent/src/main/resources/static/img/btn-tyrz.png
+0
-0
favicon.ico
...uthcenter-agent/src/main/resources/static/img/favicon.ico
+0
-0
line1.png
...-authcenter-agent/src/main/resources/static/img/line1.png
+0
-0
line2.png
...-authcenter-agent/src/main/resources/static/img/line2.png
+0
-0
msg-bg-dp.jpg
...hcenter-agent/src/main/resources/static/img/msg-bg-dp.jpg
+0
-0
msg-bg-xp.jpg
...hcenter-agent/src/main/resources/static/img/msg-bg-xp.jpg
+0
-0
ds.html
eden-authcenter-agent/src/main/resources/templates/ds.html
+83
-65
loginsuccess.html
...nter-agent/src/main/resources/templates/loginsuccess.html
+88
-43
No files found.
eden-authcenter-agent/src/main/java/com/chineseall/eden/authcenter/agent/controller/AuthController.java
View file @
9dbeb922
...
@@ -3,10 +3,8 @@ package com.chineseall.eden.authcenter.agent.controller;
...
@@ -3,10 +3,8 @@ package com.chineseall.eden.authcenter.agent.controller;
import
cn.sh.chineseall.framework.core.util.ArrayUtils
;
import
cn.sh.chineseall.framework.core.util.ArrayUtils
;
import
cn.sh.chineseall.framework.core.util.StringUtils
;
import
cn.sh.chineseall.framework.core.util.StringUtils
;
import
cn.sh.chineseall.framework.lang.calendar.DateUtils
;
import
cn.sh.chineseall.framework.lang.calendar.DateUtils
;
import
com.chineseall.eden.authcenter.agent.client.AuthUserInfo
;
import
com.alibaba.fastjson.JSON
;
import
com.chineseall.eden.authcenter.agent.client.ClientDataInfo
;
import
com.chineseall.eden.authcenter.agent.client.*
;
import
com.chineseall.eden.authcenter.agent.client.ClientItem
;
import
com.chineseall.eden.authcenter.agent.client.OauthClient
;
import
com.chineseall.eden.authcenter.agent.oauth.OauthConfig
;
import
com.chineseall.eden.authcenter.agent.oauth.OauthConfig
;
import
com.chineseall.eden.authcenter.agent.oauth.OauthConfigItem
;
import
com.chineseall.eden.authcenter.agent.oauth.OauthConfigItem
;
import
com.chineseall.eden.authcenter.agent.oauth.OauthType
;
import
com.chineseall.eden.authcenter.agent.oauth.OauthType
;
...
@@ -38,7 +36,7 @@ import java.util.function.Function;
...
@@ -38,7 +36,7 @@ import java.util.function.Function;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Controller
@Controller
@RequestMapping
(
"
auth
"
)
@RequestMapping
(
"
/
"
)
public
class
AuthController
{
public
class
AuthController
{
Logger
logger
=
Logger
.
getLogger
(
AuthController
.
class
);
Logger
logger
=
Logger
.
getLogger
(
AuthController
.
class
);
...
@@ -53,108 +51,55 @@ public class AuthController {
...
@@ -53,108 +51,55 @@ public class AuthController {
private
AuthLogService
authLogService
;
private
AuthLogService
authLogService
;
// @RequestMapping("index")
// public ModelAndView index(HttpServletRequest request, HttpServletResponse response) {
@RequestMapping
(
value
=
{
""
,
"auth"
,
"auth/index"
})
// ModelAndView modelAndView = new ModelAndView();
// modelAndView.setViewName("index2");
// Map<String, ClientItem> clientItemMap = oauthClient.getClients().stream().collect(Collectors.toMap(ClientItem::getClientId, Function.identity()));
// try {
// String clientId = request.getParameter("client_id");
// String returnUrl = request.getParameter("redirect_uri");
// ClientItem clientItem = clientItemMap.get(clientId);
// AuthLog authLog = new AuthLog();
// authLog.setLogType(LogType.login);
// if (null == clientItem) {
// modelAndView.setViewName("error");
// modelAndView.addObject("message", "client_id为空或者不正确");
// return modelAndView;
// }
// authLog.setClientId(clientId);
// authLog.setAuthSource(clientItem.getClientName());
// String sign = request.getParameter("sign");
// String signOrigin = clientItem.getClientId() + "$$" + clientItem.getClientSecret();
//
// String md5Hex = EncodeUtil.md5(signOrigin);
// if (!Objects.equals(sign, md5Hex)) {
// modelAndView.setViewName("error");
// modelAndView.addObject("message", "请求不合法");
// return modelAndView;
// }
// if (StringUtils.isEmpty(returnUrl)) {
// modelAndView.setViewName("error");
// modelAndView.addObject("message", "登录成功回调地址为空");
// return modelAndView;
// }
// String loginType = request.getParameter("login_type");
// if(StringUtils.isNotEmpty(loginType) && OauthType.getValue(loginType)!=null) {
// OauthConfigItem oauthConfigItem = oauthConfig.getItems().get(OauthType.getValue(loginType).getCode());
// authLog.setFowardUrl(oauthConfigItem.getOauthUrl());
// authLog.setOauthType(OauthType.getValue(loginType).getCode());
// // 阅览室日志分离
// ClientItem item = clientItemMap.get("readingroomClientId");
// authLog.setAuthSource(item.getClientName());
// authLogService.save(authLog);
// response.sendRedirect(generateLoginUrl(returnUrl, OauthType.getValue(loginType).getCode(), authLog.getId()));
// return null;
// } else {
// authLogService.save(authLog);
// String url1 = generateLoginUrl(returnUrl, OauthType.dianjiaoguan.getCode(), authLog.getId());
// modelAndView.addObject("loginUrl1", url1);
// String url2 = generateLoginUrl(returnUrl, OauthType.edenoperation.getCode(), authLog.getId());
// modelAndView.addObject("loginUrl2", url2);
// modelAndView.addObject("logId", authLog.getId());
// }
// } catch (Exception e) {
// e.printStackTrace();
// modelAndView.setViewName("error");
// modelAndView.addObject("message", "未知错误");
// }
// return modelAndView;
// }
@RequestMapping
(
"index"
)
public
ModelAndView
index
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
public
ModelAndView
index
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
ModelAndView
modelAndView
=
new
ModelAndView
();
ModelAndView
modelAndView
=
new
ModelAndView
();
modelAndView
.
setViewName
(
"ds"
);
modelAndView
.
setViewName
(
"ds"
);
Map
<
String
,
ClientItem
>
clientItemMap
=
oauthClient
.
getClients
().
stream
().
collect
(
Collectors
.
toMap
(
ClientItem:
:
getClientId
,
Function
.
identity
()));
Map
<
String
,
ClientItem
>
clientItemMap
=
oauthClient
.
getClients
().
stream
().
collect
(
Collectors
.
toMap
(
ClientItem:
:
getClientId
,
Function
.
identity
()));
try
{
try
{
String
clientId
=
request
.
getParameter
(
"client_id"
);
String
clientId
=
request
.
getParameter
(
"client_id"
);
String
returnUrl
=
request
.
getParameter
(
"redirect_uri"
);
String
returnUrl
=
request
.
getParameter
(
"redirect_uri"
);
ClientItem
clientItem
=
clientItemMap
.
get
(
clientId
);
AuthLog
authLog
=
new
AuthLog
();
AuthLog
authLog
=
new
AuthLog
();
authLog
.
setLogType
(
LogType
.
login
);
authLog
.
setLogType
(
LogType
.
login
);
if
(
null
==
clientItem
)
{
if
(
StringUtils
.
isNotEmpty
(
clientId
)){
modelAndView
.
setViewName
(
"error"
);
modelAndView
.
addObject
(
"message"
,
"client_id为空或者不正确"
);
return
modelAndView
;
}
authLog
.
setClientId
(
clientId
);
authLog
.
setAuthSource
(
clientItem
.
getClientName
());
String
sign
=
request
.
getParameter
(
"sign"
);
String
signOrigin
=
clientItem
.
getClientId
()
+
"$$"
+
clientItem
.
getClientSecret
();
String
md5Hex
=
EncodeUtil
.
md5
(
signOrigin
);
ClientItem
clientItem
=
clientItemMap
.
get
(
clientId
);
if
(!
Objects
.
equals
(
sign
,
md5Hex
))
{
if
(
null
==
clientItem
)
{
modelAndView
.
setViewName
(
"error"
);
modelAndView
.
setViewName
(
"error"
);
modelAndView
.
addObject
(
"message"
,
"请求不合法"
);
modelAndView
.
addObject
(
"message"
,
"client_id为空或者不正确"
);
return
modelAndView
;
return
modelAndView
;
}
}
if
(
StringUtils
.
isEmpty
(
returnUrl
))
{
authLog
.
setClientId
(
clientId
);
modelAndView
.
setViewName
(
"error"
);
authLog
.
setAuthSource
(
clientItem
.
getClientName
());
modelAndView
.
addObject
(
"message"
,
"登录成功回调地址为空"
);
String
sign
=
request
.
getParameter
(
"sign"
);
return
modelAndView
;
String
signOrigin
=
clientItem
.
getClientId
()
+
"$$"
+
clientItem
.
getClientSecret
();
}
String
loginType
=
request
.
getParameter
(
"login_type"
);
String
md5Hex
=
EncodeUtil
.
md5
(
signOrigin
);
OauthType
oauthType
=
OauthType
.
getValue
(
loginType
);
if
(!
Objects
.
equals
(
sign
,
md5Hex
))
{
if
(
StringUtils
.
isNotEmpty
(
loginType
)
&&
oauthType
!=
null
)
{
modelAndView
.
setViewName
(
"error"
);
if
(
StringUtils
.
isNotEmpty
(
returnUrl
)
&&
returnUrl
.
contains
(
"readinglab"
)){
modelAndView
.
addObject
(
"message"
,
"请求不合法"
);
// 阅览室日志分离
return
modelAndView
;
ClientItem
item
=
clientItemMap
.
get
(
"readingroomClientId"
);
}
authLog
.
setAuthSource
(
item
.
getClientName
());
if
(
StringUtils
.
isEmpty
(
returnUrl
))
{
modelAndView
.
setViewName
(
"error"
);
modelAndView
.
addObject
(
"message"
,
"登录成功回调地址为空"
);
return
modelAndView
;
}
String
loginType
=
request
.
getParameter
(
"login_type"
);
OauthType
oauthType
=
OauthType
.
getValue
(
loginType
);
if
(
StringUtils
.
isNotEmpty
(
loginType
)
&&
oauthType
!=
null
)
{
if
(
StringUtils
.
isNotEmpty
(
returnUrl
)
&&
returnUrl
.
contains
(
"readinglab"
)){
// 阅览室日志分离
ClientItem
item
=
clientItemMap
.
get
(
"readingroomClientId"
);
authLog
.
setAuthSource
(
item
.
getClientName
());
}
modelAndView
.
addObject
(
"loginType"
,
loginType
);
}
else
{
modelAndView
.
addObject
(
"loginType"
,
""
);
}
}
modelAndView
.
addObject
(
"loginType"
,
loginType
);
}
else
{
modelAndView
.
addObject
(
"loginType"
,
""
);
}
}
authLogService
.
save
(
authLog
);
authLogService
.
save
(
authLog
);
...
@@ -175,7 +120,7 @@ public class AuthController {
...
@@ -175,7 +120,7 @@ public class AuthController {
return
modelAndView
;
return
modelAndView
;
}
}
@RequestMapping
(
"tologin"
)
@RequestMapping
(
"
auth/
tologin"
)
public
ModelAndView
toLogin
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
public
ModelAndView
toLogin
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
ModelAndView
modelAndView
=
new
ModelAndView
();
ModelAndView
modelAndView
=
new
ModelAndView
();
String
loginUrl
=
request
.
getParameter
(
"loginUrl"
);
String
loginUrl
=
request
.
getParameter
(
"loginUrl"
);
...
@@ -212,7 +157,7 @@ public class AuthController {
...
@@ -212,7 +157,7 @@ public class AuthController {
return
modelAndView
;
return
modelAndView
;
}
}
@RequestMapping
(
"logout"
)
@RequestMapping
(
"
auth/
logout"
)
public
ModelAndView
logout
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
public
ModelAndView
logout
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
ModelAndView
modelAndView
=
new
ModelAndView
();
ModelAndView
modelAndView
=
new
ModelAndView
();
modelAndView
.
setViewName
(
"logout"
);
modelAndView
.
setViewName
(
"logout"
);
...
@@ -261,10 +206,14 @@ public class AuthController {
...
@@ -261,10 +206,14 @@ public class AuthController {
authLogService
.
save
(
authLog
);
authLogService
.
save
(
authLog
);
if
(
StringUtils
.
isNotEmpty
(
service
))
{
if
(
StringUtils
.
isNotEmpty
(
service
))
{
if
(!
OauthType
.
dianjiaoguan
.
equals
(
type
)
&&
!
OauthType
.
edenoperation
.
equals
(
type
)){
if
(!
OauthType
.
dianjiaoguan
.
equals
(
type
)
&&
!
OauthType
.
edenoperation
.
equals
(
type
)){
response
.
sendRedirect
(
service
);
if
(
OauthType
.
qpjy
.
equals
(
type
)){
response
.
sendRedirect
(
generateSpLogoutUrl
(
service
,
type
.
name
()));
}
}
else
{
response
.
sendRedirect
(
generateLogoutUrl
(
service
,
type
.
name
()));
}
}
response
.
sendRedirect
(
generateLogoutUrl
(
service
,
type
.
name
()));
//response.sendRedirect(service);
}
}
return
null
;
return
null
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
@@ -275,7 +224,7 @@ public class AuthController {
...
@@ -275,7 +224,7 @@ public class AuthController {
return
modelAndView
;
return
modelAndView
;
}
}
@RequestMapping
(
value
=
"loginsuccess"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"
auth/
loginsuccess"
,
method
=
RequestMethod
.
GET
)
public
ModelAndView
loginsuccess
(
HttpServletRequest
request
,
HttpServletResponse
response
,
ModelAndView
modelAndView
)
{
public
ModelAndView
loginsuccess
(
HttpServletRequest
request
,
HttpServletResponse
response
,
ModelAndView
modelAndView
)
{
modelAndView
.
setViewName
(
"loginsuccess"
);
modelAndView
.
setViewName
(
"loginsuccess"
);
String
code
=
request
.
getParameter
(
"code"
);
String
code
=
request
.
getParameter
(
"code"
);
...
@@ -283,6 +232,10 @@ public class AuthController {
...
@@ -283,6 +232,10 @@ public class AuthController {
String
logId
=
request
.
getParameter
(
"log_id"
);
String
logId
=
request
.
getParameter
(
"log_id"
);
String
returnUrl
=
request
.
getParameter
(
"return_url"
);
String
returnUrl
=
request
.
getParameter
(
"return_url"
);
System
.
out
.
println
(
"code="
+
code
);
System
.
out
.
println
(
"oauthType="
+
oauthType
);
System
.
out
.
println
(
"returnUrl="
+
returnUrl
);
AuthLog
authLog
=
authLogService
.
getById
(
logId
);
AuthLog
authLog
=
authLogService
.
getById
(
logId
);
if
(
authLog
==
null
){
if
(
authLog
==
null
){
authLog
=
new
AuthLog
();
authLog
=
new
AuthLog
();
...
@@ -347,6 +300,7 @@ public class AuthController {
...
@@ -347,6 +300,7 @@ public class AuthController {
}
}
clientDataInfo
.
setAuthUserInfo
(
userInfo
);
clientDataInfo
.
setAuthUserInfo
(
userInfo
);
clientDataInfo
.
setOauthType
(
OauthType
.
valueOf
(
oauthType
));
clientDataInfo
.
setOauthType
(
OauthType
.
valueOf
(
oauthType
));
modelAndView
.
addObject
(
"clientDataInfo"
,
clientDataInfo
);
modelAndView
.
addObject
(
"clientDataInfo"
,
clientDataInfo
);
modelAndView
.
addObject
(
"successPostUrl"
,
returnUrl
);
modelAndView
.
addObject
(
"successPostUrl"
,
returnUrl
);
}
}
...
@@ -360,7 +314,7 @@ public class AuthController {
...
@@ -360,7 +314,7 @@ public class AuthController {
return
modelAndView
;
return
modelAndView
;
}
}
@RequestMapping
(
value
=
"idp/loginsuccess"
)
@RequestMapping
(
value
=
"
auth/
idp/loginsuccess"
)
public
ModelAndView
idploginsuccess
(
HttpServletRequest
request
,
HttpServletResponse
response
,
ModelAndView
modelAndView
)
{
public
ModelAndView
idploginsuccess
(
HttpServletRequest
request
,
HttpServletResponse
response
,
ModelAndView
modelAndView
)
{
modelAndView
.
setViewName
(
"loginsuccess"
);
modelAndView
.
setViewName
(
"loginsuccess"
);
String
code
=
request
.
getParameter
(
"code"
);
String
code
=
request
.
getParameter
(
"code"
);
...
@@ -382,6 +336,11 @@ public class AuthController {
...
@@ -382,6 +336,11 @@ public class AuthController {
String
userType
=
request
.
getParameter
(
"user_type"
);
String
userType
=
request
.
getParameter
(
"user_type"
);
userInfo
.
setRealName
(
request
.
getParameter
(
"real_name"
));
userInfo
.
setRealName
(
request
.
getParameter
(
"real_name"
));
userInfo
.
setId
(
request
.
getParameter
(
"login_name"
));
userInfo
.
setId
(
request
.
getParameter
(
"login_name"
));
if
(
"student"
.
equals
(
userType
)){
userInfo
.
setUserType
(
UserType
.
STUDENT
);
}
else
if
(
"tearcher"
.
equals
(
userType
)){
userInfo
.
setUserType
(
UserType
.
TEACHER
);
}
// 封装下游数据
// 封装下游数据
ClientDataInfo
clientDataInfo
=
new
ClientDataInfo
();
ClientDataInfo
clientDataInfo
=
new
ClientDataInfo
();
if
(
userInfo
!=
null
)
{
if
(
userInfo
!=
null
)
{
...
@@ -413,6 +372,7 @@ public class AuthController {
...
@@ -413,6 +372,7 @@ public class AuthController {
}
}
clientDataInfo
.
setAuthUserInfo
(
userInfo
);
clientDataInfo
.
setAuthUserInfo
(
userInfo
);
clientDataInfo
.
setOauthType
(
OauthType
.
valueOf
(
oauthType
));
clientDataInfo
.
setOauthType
(
OauthType
.
valueOf
(
oauthType
));
modelAndView
.
addObject
(
"clientDataInfo"
,
clientDataInfo
);
modelAndView
.
addObject
(
"clientDataInfo"
,
clientDataInfo
);
modelAndView
.
addObject
(
"successPostUrl"
,
returnUrl
);
modelAndView
.
addObject
(
"successPostUrl"
,
returnUrl
);
...
@@ -427,7 +387,7 @@ public class AuthController {
...
@@ -427,7 +387,7 @@ public class AuthController {
}
}
@RequestMapping
(
value
=
"logoutsuccess"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"
auth/
logoutsuccess"
,
method
=
RequestMethod
.
GET
)
public
ModelAndView
loginoutsuccess
(
HttpServletRequest
request
,
HttpServletResponse
response
,
ModelAndView
modelAndView
)
throws
IOException
{
public
ModelAndView
loginoutsuccess
(
HttpServletRequest
request
,
HttpServletResponse
response
,
ModelAndView
modelAndView
)
throws
IOException
{
String
returnUrl
=
request
.
getParameter
(
"return_url"
);
String
returnUrl
=
request
.
getParameter
(
"return_url"
);
if
(
StringUtils
.
isNotEmpty
(
returnUrl
)){
if
(
StringUtils
.
isNotEmpty
(
returnUrl
)){
...
@@ -470,7 +430,7 @@ public class AuthController {
...
@@ -470,7 +430,7 @@ public class AuthController {
if
(!
oauthConfigItem
.
getOauthUrl
().
endsWith
(
"/"
))
{
if
(!
oauthConfigItem
.
getOauthUrl
().
endsWith
(
"/"
))
{
loginUrlBuilder
.
append
(
"/"
);
loginUrlBuilder
.
append
(
"/"
);
}
}
loginUrlBuilder
.
append
(
"?client_id="
).
append
(
oauthConfigItem
.
getClientId
());
loginUrlBuilder
.
append
(
"
login
?client_id="
).
append
(
oauthConfigItem
.
getClientId
());
String
loginSuccessUrl
=
oauthConfigItem
.
getLoginSuccessUrl
();
String
loginSuccessUrl
=
oauthConfigItem
.
getLoginSuccessUrl
();
loginSuccessUrl
=
loginSuccessUrl
+
"?log_id="
+
logId
+
"&oauth_type="
+
oauthType
;
loginSuccessUrl
=
loginSuccessUrl
+
"?log_id="
+
logId
+
"&oauth_type="
+
oauthType
;
if
(
StringUtils
.
isNotEmpty
(
returnUrl
))
{
if
(
StringUtils
.
isNotEmpty
(
returnUrl
))
{
...
@@ -503,6 +463,39 @@ public class AuthController {
...
@@ -503,6 +463,39 @@ public class AuthController {
return
loginUrlBuilder
.
toString
();
return
loginUrlBuilder
.
toString
();
}
}
private
String
generateSpLogoutUrl
(
String
returnUrl
,
String
oauthType
)
{
if
(
oauthType
.
equals
(
"qpjy"
)){
returnUrl
=
"https://idp.qpedu.cn/logout/logout.html?redirect_url="
+
returnUrl
;
returnUrl
=
"https://sp.etextbook.cn/Shibboleth.sso/Logout?return="
+
URLEncoder
.
encode
(
returnUrl
);
return
returnUrl
;
}
StringBuilder
loginUrlBuilder
=
new
StringBuilder
();
OauthConfigItem
oauthConfigItem
=
oauthConfig
.
getItems
().
get
(
oauthType
);
loginUrlBuilder
.
append
(
oauthConfigItem
.
getOauthUrl
());
if
(!
oauthConfigItem
.
getOauthUrl
().
endsWith
(
"/"
))
{
loginUrlBuilder
.
append
(
"/"
);
}
String
service
=
oauthConfigItem
.
getLogoutSuccessUrl
();
if
(
StringUtils
.
isNotEmpty
(
returnUrl
))
{
Map
<
String
,
String
>
param
=
new
HashMap
<>();
param
.
put
(
"return_url"
,
URLEncoder
.
encode
(
returnUrl
));
service
=
appendUrl
(
service
,
param
);
}
String
clientId
=
oauthConfigItem
.
getClientId
();
String
signOrigin
=
oauthConfigItem
.
getClientId
()
+
"$$"
+
oauthConfigItem
.
getClientSecret
();
String
md5Hex
=
EncodeUtil
.
md5
(
signOrigin
);
loginUrlBuilder
.
append
(
"logout?service="
).
append
(
URLEncoder
.
encode
(
service
));
loginUrlBuilder
.
append
(
"&client_id="
+
clientId
);
loginUrlBuilder
.
append
(
"&sign="
+
md5Hex
);
return
loginUrlBuilder
.
toString
();
}
private
String
generateUserInfoUrl
(
String
accessToken
,
String
oauthType
)
{
private
String
generateUserInfoUrl
(
String
accessToken
,
String
oauthType
)
{
//String url = "http://castest.edu.sh.cn/CAS/oauth2.0/accessToken?client_id=testClentId&client_secret=testClientSecret&redirect_uri=http%3a%2f%2f192.168.17.129%3a7774%2fauth%2floginsuccess2.do&code=" + code;
//String url = "http://castest.edu.sh.cn/CAS/oauth2.0/accessToken?client_id=testClentId&client_secret=testClientSecret&redirect_uri=http%3a%2f%2f192.168.17.129%3a7774%2fauth%2floginsuccess2.do&code=" + code;
StringBuilder
builder
=
new
StringBuilder
();
StringBuilder
builder
=
new
StringBuilder
();
...
@@ -554,7 +547,7 @@ public class AuthController {
...
@@ -554,7 +547,7 @@ public class AuthController {
return
newUrl
;
return
newUrl
;
}
}
@RequestMapping
(
"shauth"
)
@RequestMapping
(
"
auth/
shauth"
)
public
ModelAndView
chineseallLogin
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
public
ModelAndView
chineseallLogin
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
ModelAndView
modelAndView
=
new
ModelAndView
();
ModelAndView
modelAndView
=
new
ModelAndView
();
modelAndView
.
setViewName
(
"toward"
);
modelAndView
.
setViewName
(
"toward"
);
...
@@ -600,7 +593,7 @@ public class AuthController {
...
@@ -600,7 +593,7 @@ public class AuthController {
return
modelAndView
;
return
modelAndView
;
}
}
@RequestMapping
(
"shlogout"
)
@RequestMapping
(
"
auth/
shlogout"
)
public
ModelAndView
shLogout
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
public
ModelAndView
shLogout
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
ModelAndView
modelAndView
=
new
ModelAndView
();
ModelAndView
modelAndView
=
new
ModelAndView
();
modelAndView
.
setViewName
(
"logout"
);
modelAndView
.
setViewName
(
"logout"
);
...
...
eden-authcenter-agent/src/main/java/com/chineseall/eden/authcenter/agent/controller/LogStatisticsController.java
View file @
9dbeb922
...
@@ -111,19 +111,29 @@ public class LogStatisticsController {
...
@@ -111,19 +111,29 @@ public class LogStatisticsController {
if
(
null
!=
month
){
if
(
null
!=
month
){
param
.
put
(
"yearMonth"
,
month
);
param
.
put
(
"yearMonth"
,
month
);
}
}
long
all_auth
=
authLogService
.
count
(
param
);
List
<
StatItem
>
browserResult
=
new
ArrayList
<>();
List
<
StatItem
>
browserResult
=
new
ArrayList
<>();
List
<
String
>
browserList
=
authLogService
.
distinct
(
"browser"
,
param
);
List
<
String
>
browserList
=
authLogService
.
distinct
(
"browser"
,
param
);
long
unknownBrowser
=
all_auth
;
if
(
CollectionUtils
.
isNotEmpty
(
browserList
)){
if
(
CollectionUtils
.
isNotEmpty
(
browserList
)){
browserList
.
forEach
(
item
->
{
for
(
String
item
:
browserList
)
{
param
.
put
(
"browser"
,
item
);
param
.
put
(
"browser"
,
item
);
long
count
=
authLogService
.
count
(
param
);
long
count
=
authLogService
.
count
(
param
);
StatItem
statItem
=
new
StatItem
();
StatItem
statItem
=
new
StatItem
();
statItem
.
setName
(
item
);
statItem
.
setName
(
item
);
statItem
.
setCount
(
count
);
statItem
.
setCount
(
count
);
unknownBrowser
=
unknownBrowser
-
count
;
browserResult
.
add
(
statItem
);
browserResult
.
add
(
statItem
);
}
);
}
}
}
if
(
unknownBrowser
>
0
){
StatItem
statItem
=
new
StatItem
();
statItem
.
setName
(
"unknown"
);
statItem
.
setCount
(
unknownBrowser
);
browserResult
.
add
(
statItem
);
}
result
.
put
(
"browser"
,
browserResult
);
result
.
put
(
"browser"
,
browserResult
);
...
@@ -132,15 +142,25 @@ public class LogStatisticsController {
...
@@ -132,15 +142,25 @@ public class LogStatisticsController {
param
.
remove
(
"browser"
);
param
.
remove
(
"browser"
);
List
<
String
>
osList
=
authLogService
.
distinct
(
"os"
,
param
);
List
<
String
>
osList
=
authLogService
.
distinct
(
"os"
,
param
);
long
unknownOs
=
all_auth
;
if
(
CollectionUtils
.
isNotEmpty
(
osList
)){
if
(
CollectionUtils
.
isNotEmpty
(
osList
)){
osList
.
forEach
(
item
->
{
for
(
String
item
:
osList
)
{
param
.
put
(
"os"
,
item
);
param
.
put
(
"os"
,
item
);
long
count
=
authLogService
.
count
(
param
);
long
count
=
authLogService
.
count
(
param
);
StatItem
statItem
=
new
StatItem
();
StatItem
statItem
=
new
StatItem
();
statItem
.
setName
(
item
);
statItem
.
setName
(
item
);
statItem
.
setCount
(
count
);
statItem
.
setCount
(
count
);
osResult
.
add
(
statItem
);
osResult
.
add
(
statItem
);
});
unknownOs
=
unknownOs
-
count
;
}
}
if
(
unknownOs
>
0
){
StatItem
statItem
=
new
StatItem
();
statItem
.
setName
(
"unknown"
);
statItem
.
setCount
(
unknownOs
);
osResult
.
add
(
statItem
);
}
}
result
.
put
(
"os"
,
osResult
);
result
.
put
(
"os"
,
osResult
);
return
MapMessage
.
successMessage
().
add
(
"data"
,
result
);
return
MapMessage
.
successMessage
().
add
(
"data"
,
result
);
...
...
eden-authcenter-agent/src/main/java/com/chineseall/eden/authcenter/agent/controller/SampleController.java
View file @
9dbeb922
...
@@ -15,8 +15,8 @@ import java.io.IOException;
...
@@ -15,8 +15,8 @@ import java.io.IOException;
import
java.net.URLEncoder
;
import
java.net.URLEncoder
;
@Controller
//
@Controller
@RequestMapping
(
"sample"
)
//
@RequestMapping("sample")
public
class
SampleController
{
public
class
SampleController
{
// 认证系统提供client_id
// 认证系统提供client_id
...
...
eden-authcenter-agent/src/main/resources/application.yml
View file @
9dbeb922
...
@@ -44,7 +44,7 @@ oauth:
...
@@ -44,7 +44,7 @@ oauth:
logoutSuccessUrl
:
https://ds.etextbook.cn/authcenter/auth/logoutsuccess
logoutSuccessUrl
:
https://ds.etextbook.cn/authcenter/auth/logoutsuccess
qpjy
:
#idp
qpjy
:
#idp
#oauthUrl: https://operator-api-test.etextbook.cn/cas
#oauthUrl: https://operator-api-test.etextbook.cn/cas
oauthUrl
:
https://sp.etextbook.cn/authcenter/auth
/login
oauthUrl
:
https://sp.etextbook.cn/authcenter/auth
clientId
:
dsClentId
clientId
:
dsClentId
clientSecret
:
VjyqUkkM5Znu
clientSecret
:
VjyqUkkM5Znu
loginSuccessUrl
:
https://ds.etextbook.cn/authcenter/auth/idp/loginsuccess
loginSuccessUrl
:
https://ds.etextbook.cn/authcenter/auth/idp/loginsuccess
...
...
eden-authcenter-agent/src/main/resources/bootstrap.yml
View file @
9dbeb922
...
@@ -44,7 +44,7 @@ oauth:
...
@@ -44,7 +44,7 @@ oauth:
logoutSuccessUrl
:
https://ds.etextbook.cn/authcenter/auth/logoutsuccess
logoutSuccessUrl
:
https://ds.etextbook.cn/authcenter/auth/logoutsuccess
qpjy
:
#idp
qpjy
:
#idp
#oauthUrl: https://operator-api-test.etextbook.cn/cas
#oauthUrl: https://operator-api-test.etextbook.cn/cas
oauthUrl
:
https://sp.etextbook.cn/authcenter/auth
/login
oauthUrl
:
https://sp.etextbook.cn/authcenter/auth
clientId
:
dsClentId
clientId
:
dsClentId
clientSecret
:
VjyqUkkM5Znu
clientSecret
:
VjyqUkkM5Znu
loginSuccessUrl
:
https://ds.etextbook.cn/authcenter/auth/idp/loginsuccess
loginSuccessUrl
:
https://ds.etextbook.cn/authcenter/auth/idp/loginsuccess
...
...
eden-authcenter-agent/src/main/resources/static/css/ds.css
View file @
9dbeb922
html
,
body
{
/*! HTML5 Boilerplate v4.3.0 | MIT License | http://h5bp.com/ */
/*
* What follows is the result of much research on cross-browser styling.
* Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
* Kroc Camen, and the H5BP dev community and team.
*/
/* ==========================================================================
Base styles: opinionated defaults
========================================================================== */
html
,
button
,
input
,
select
,
textarea
{
color
:
#222
;
}
html
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
overflow
:
hidden
;
font-size
:
1em
;
line-height
:
1.4
;
}
}
.ds
{
max-width
:
1900px
;
/*
margin
:
0
auto
;
* Remove text-shadow in selection highlight: h5bp.com/i
height
:
100vh
;
* These selection rule sets have to be separate.
overflow
:
hidden
;
* Customize the background color to match your design.
}
*/
.ds-header-img
{
margin
:
20px
0
;
::-moz-selection
{
margin-left
:
5%
;
background
:
#b3d4fc
;
width
:
252.5px
;
text-shadow
:
none
;
height
:
40px
;
}
}
.ds-content
{
width
:
100%
;
::selection
{
height
:
calc
(
100%
-
185px
);
background
:
#b3d4fc
;
background
:
url("../img/bg.png")
no-repeat
center
center
;
text-shadow
:
none
;
background-size
:
100%
100%
;
overflow
:
hidden
;
}
}
.ds-content-mask
{
margin
:
3%
3%
;
/*
height
:
100%
;
* A better looking default horizontal rule
/* height: 543px; */
*/
/* background: rgba(255, 255, 255, 0.1); */
hr
{
display
:
block
;
height
:
1px
;
border
:
0
;
border-top
:
1px
solid
#ccc
;
margin
:
1em
0
;
padding
:
0
;
}
}
.ds-content-title
{
padding
:
2%
0
1%
0
;
/*
margin
:
1%
0
;
* Remove the gap between images, videos, audio and canvas and the bottom of
text-align
:
center
;
* their containers: h5bp.com/i/440
color
:
white
;
*/
font-weight
:
500
;
font-size
:
28px
;
audio
,
letter-spacing
:
6px
;
canvas
,
img
,
video
{
vertical-align
:
middle
;
}
}
.ds-footer
{
width
:
100%
;
/*
height
:
105px
;
* Remove default fieldset styles.
overflow
:
hidden
;
*/
background
:
white
url("../img/Login-b.jpg")
no-repeat
center
center
;
fieldset
{
border
:
0
;
margin
:
0
;
padding
:
0
;
}
}
.ds-footer
>
p
{
color
:
#aab9c5
;
/*
font-size
:
12px
;
* Allow only vertical resizing of textareas.
/* line-height: 75px; */
*/
text-align
:
center
;
margin-top
:
3%
;
textarea
{
resize
:
vertical
;
}
}
.ds-content-source
{
/* display: flex; */
/* ==========================================================================
max-width
:
1000px
;
Browse Happy prompt
margin
:
0
auto
;
========================================================================== */
height
:
calc
(
100%
-
100px
);
.browsehappy
{
margin
:
0.2em
0
;
background
:
#ccc
;
color
:
#000
;
padding
:
0.2em
0
;
}
}
.ds-content-city
{
/* flex-basis: 400px; */
/* ==========================================================================
float
:
left
;
Author's custom styles
width
:
35%
;
========================================================================== */
padding-right
:
10px
;
height
:
100%
;
/* ==========================================================================
/* flex-grow: 1;
Helper classes
display: flex;
========================================================================== */
justify-content: flex-end; */
/*
* Image replacement
*/
.ir
{
background-color
:
transparent
;
border
:
0
;
overflow
:
hidden
;
/* IE 6/7 fallback */
*
text-indent
:
-9999px
;
}
}
.ds-content-city-float
{
width
:
300px
;
.ir
:before
{
margin-left
:
auto
;
content
:
""
;
display
:
block
;
width
:
0
;
height
:
150%
;
}
}
.ds-content-city-float
>
p
{
width
:
90px
;
/*
color
:
white
;
* Hide from both screenreaders and browsers: h5bp.com/u
font-size
:
20px
;
*/
line-height
:
42px
;
flex-shrink
:
0
;
.hidden
{
margin
:
0
;
display
:
none
!important
;
margin-top
:
10px
;
visibility
:
hidden
;
margin-left
:
10px
;
}
.ds-content-district
{
float
:
left
;
width
:
58%
;
/* flex-basis: 600px;
flex-grow: 2; */
height
:
100%
;
margin-left
:
10px
;
}
}
.ds-content-district
>
p
{
a
,
width
:
90px
;
button
,
color
:
white
;
input
{
font-size
:
20px
;
outline
:
none
;
line-height
:
42px
;
flex-shrink
:
0
;
margin
:
0
;
margin-top
:
10px
;
margin-left
:
10px
;
}
}
.logo-btn
{
/*
* Hide only visually, but have it available for screenreaders: h5bp.com/v
*/
.visuallyhidden
{
border
:
0
;
border
:
0
;
border-radius
:
5px
;
clip
:
rect
(
0
0
0
0
);
background-repeat
:
no-repeat
!important
;
height
:
1px
;
background-position
:
center
center
!important
;
margin
:
-1px
;
position
:
relative
;
overflow
:
hidden
;
outline
:
0
;
padding
:
0
;
position
:
absolute
;
width
:
1px
;
}
}
.logo-btn
:focus
{
outline
:
0
;
/*
* Extends the .visuallyhidden class to allow the element to be focusable
* when navigated to via the keyboard: h5bp.com/p
*/
.visuallyhidden.focusable
:active
,
.visuallyhidden.focusable
:focus
{
clip
:
auto
;
height
:
auto
;
margin
:
0
;
overflow
:
visible
;
position
:
static
;
width
:
auto
;
}
}
.city-btn
{
width
:
280px
;
/*
height
:
52px
;
* Hide visually and from screenreaders, but maintain layout
margin
:
10px
10px
;
*/
margin-bottom
:
82px
;
background-size
:
100%
100%
!important
;
.invisible
{
visibility
:
hidden
;
}
}
.idp-btn
{
width
:
143px
;
/*
height
:
52px
;
* Clearfix: contain floats
background-size
:
100%
100%
!important
;
*
margin
:
10px
10px
;
* For modern browsers
* 1. The space content is one way to avoid an Opera bug when the
* `contenteditable` attribute is included anywhere else in the document.
* Otherwise it causes space to appear at the top and bottom of elements
* that receive the `clearfix` class.
* 2. The use of `table` rather than `block` is only necessary if using
* `:before` to contain the top-margins of child elements.
*/
.clearfix
:before
,
.clearfix
:after
{
content
:
" "
;
/* 1 */
display
:
table
;
/* 2 */
}
}
.logo-btn
:after
{
position
:
absolute
;
.clearfix
:after
{
c
ontent
:
"\00a0"
;
c
lear
:
both
;
}
}
.logo-btn-mask
:after
{
position
:
absolute
;
/*
border-radius
:
5px
;
* For IE 6/7 only
top
:
0
;
* Include this rule to trigger hasLayout and contain floats.
left
:
0
;
*/
content
:
"\00a0"
;
background-color
:
black
;
.clearfix
{
opacity
:
0.2
;
*
zoom
:
1
;
width
:
100%
;
height
:
100%
;
}
}
.ds-content-text
{
color
:
white
;
/* ==========================================================================
text-align
:
center
;
EXAMPLE Media Queries for Responsive Design.
font-size
:
18px
;
These examples override the primary ('mobile first') styles.
letter-spacing
:
2px
;
Modify as content requires.
margin-top
:
40px
;
========================================================================== */
margin-bottom
:
8px
;
}
@media
only
screen
and
(
min-width
:
35em
)
{
.ds-divide-line
{
/* Style adjustments for viewports that meet the condition */
float
:
left
;
width
:
2px
;
border
:
1px
rgba
(
255
,
255
,
255
,
0.795
);
margin
:
10px
20px
;
height
:
40vh
;
background-color
:
rgba
(
255
,
255
,
255
,
0.795
);
}
.szjc-login
{
width
:
80%
;
margin
:
0px
auto
;
text-align
:
center
;
}
}
.szjc-login
>
p
{
color
:
white
;
@media
print
,
font-size
:
18px
;
(
-o-min-device-pixel-ratio
:
5
/
4
),
margin
:
0
;
(
-webkit-min-device-pixel-ratio
:
1.25
),
margin-bottom
:
6px
;
(
min-resolution
:
120dpi
)
{
/* Style adjustments for high resolution devices */
}
}
/* ==========================================================================
Print styles.
Inlined to avoid required HTTP connection: h5bp.com/r
========================================================================== */
@media
screen
and
(
max-width
:
1000px
)
{
@media
print
{
.ds-header-img
{
*
{
width
:
126px
;
background
:
transparent
!important
;
height
:
20px
;
color
:
#000
!important
;
/* Black prints faster: h5bp.com/s */
margin
:
10px
0
;
box-shadow
:
none
!important
;
margin-left
:
20px
;
text-shadow
:
none
!important
;
}
}
.ds-content
{
height
:
calc
(
100%
-
70px
);
a
,
a
:visited
{
text-decoration
:
underline
;
}
}
.ds-footer
{
height
:
30px
;
a
[
href
]
:after
{
content
:
" ("
attr
(
href
)
")"
;
}
}
.ds-footer
.ds-content-text
{
margin
:
6px
0
;
abbr
[
title
]
:after
{
content
:
" ("
attr
(
title
)
")"
;
}
}
.ds-content-source
{
display
:
flex
;
/*
height
:
calc
(
100%
-
60px
);
* Don't show links for images, or javascript/internal links
max-width
:
700px
;
*/
.ir
a
:after
,
a
[
href
^=
"javascript:"
]
:after
,
a
[
href
^=
"#"
]
:after
{
content
:
""
;
}
}
.ds-content-title
{
padding
:
10px
0
0
0
;
pre
,
margin
:
5px
0
;
blockquote
{
font-size
:
20px
;
border
:
1px
solid
#999
;
page-break-inside
:
avoid
;
}
}
.ds-content-city
{
padding-right
:
0
;
thead
{
height
:
100%
;
display
:
table-header-group
;
/* h5bp.com/t */
min-width
:
210px
;
}
}
.ds-content-city-float
{
width
:
210px
;
tr
,
img
{
page-break-inside
:
avoid
;
}
}
.ds-content-city-float
>
p
{
font-size
:
16px
;
img
{
line-height
:
16px
;
max-width
:
100%
!important
;
margin
:
6px
5px
;
}
}
.ds-content-district
{
margin
:
0
auto
;
@page
{
margin
:
0.5cm
;
}
}
.ds-content-district
>
p
{
font-size
:
16px
;
p
,
line-height
:
16px
;
h2
,
margin
:
6px
5px
;
h3
{
orphans
:
3
;
widows
:
3
;
}
}
.city-btn
{
width
:
200px
;
h2
,
height
:
40px
;
h3
{
margin
:
6px
5px
;
page-break-after
:
avoid
;
margin-bottom
:
58px
;
}
}
.idp-btn
{
}
width
:
110px
;
height
:
40px
;
body
{
margin
:
6px
1px
;
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
background-color
:
#4e97f7
!important
;
background-image
:
-webkit-linear-gradient
(
30deg
,
rgb
(
35
,
129
,
255
),
rgb
(
96
,
203
,
255
));
background-image
:
-moz-linear-gradient
(
30deg
,
rgb
(
35
,
129
,
255
),
rgb
(
96
,
203
,
255
));
background-image
:
linear-gradient
(
30deg
,
rgb
(
35
,
129
,
255
),
rgb
(
96
,
203
,
255
));
align-items
:
center
;
justify-content
:
center
;
}
button
{
border
:
none
;
background-color
:
transparent
;
margin
:
0
;
padding
:
0
6px
;
}
.bg
{
width
:
887px
;
height
:
476px
;
position
:
relative
;
top
:
50%
;
left
:
50%
;
margin-top
:
-238px
;
margin-left
:
-444px
;
background
:
url("../img/bg-xp.png")
no-repeat
center
;
}
.loginContainer
{
width
:
600px
;
position
:
absolute
;
top
:
30px
;
left
:
30px
;
}
.loginContainer
h1
{
color
:
#fff
;
}
.login-box
{
width
:
450px
;
box-sizing
:
border-box
;
border-radius
:
15px
;
}
.logo-top-left
{
height
:
40px
;
margin-left
:
-150px
;
}
.title
{
margin
:
14px
0
0
0
;
font-size
:
18px
;
letter-spacing
:
5px
;
}
.title-line-city
{
background
:
url("../img/line1.png")
no-repeat
center
;
background-size
:
200%
2px
;
background-position
:
-152px
50%
;
-ms-background-position
:
-152px
50%
;
width
:
360px
;
margin
:
0
auto
;
margin-top
:
6px
;
color
:
rgb
(
165
,
165
,
165
);
}
#login-btn-szjc
{
background
:
url("../img/btn-szjc.png")
no-repeat
center
;
background-size
:
100%
100%
;
width
:
249px
;
height
:
74px
;
margin
:
10px
0
;
}
#login-btn-tyrz
{
background
:
url("../img/btn-tyrz.png")
no-repeat
center
;
background-size
:
100%
100%
;
width
:
249px
;
height
:
74px
;
margin
:
10px
0
;
}
.title-line-district
{
background
:
url("../img/line2.png")
no-repeat
center
;
background-size
:
200%
2px
;
background-position
:
-165px
50%
;
-ms-background-position
:
-165px
50%
;
width
:
360px
;
margin
:
0
auto
;
color
:
rgb
(
165
,
165
,
165
);
}
.login-btn-district
{
display
:
-webkit-box
;
display
:
-moz-box
;
display
:
-ms-flexbox
;
display
:
-webkit-flex
;
display
:
flex
;
-webkit-box-direction
:
normal
;
margin
:
5px
0
;
margin-left
:
20px
;
}
.login-btn-idp
{
font-size
:
12px
;
font-weight
:
700
;
transform
:
scale
(
0.9
);
-ms-transform
:
scale
(
0.9
);
/* IE 9 */
-moz-transform
:
scale
(
0.9
);
/* Firefox */
-webkit-transform
:
scale
(
0.9
);
/* Safari 和 Chrome */
-o-transform
:
scale
(
0.9
);
/* Opera */
}
.login-btn-idp-enable
{
color
:
rgb
(
29
,
154
,
253
);
}
.footer
{
position
:
absolute
;
bottom
:
20px
;
color
:
white
;
text-align
:
center
;
width
:
100%
;
}
.footer-text
{
margin
:
5px
0
;
font-size
:
12px
;
transform
:
scale
(
0.9
);
-ms-transform
:
scale
(
0.9
);
/* IE 9 */
-moz-transform
:
scale
(
0.9
);
/* Firefox */
-webkit-transform
:
scale
(
0.9
);
/* Safari 和 Chrome */
-o-transform
:
scale
(
0.9
);
/* Opera */
letter-spacing
:
1.5px
;
}
.vertical-line
{
margin
:
0
10px
;
color
:
rgb
(
122
,
186
,
255
);
}
@media
screen
and
(
min-width
:
1025px
)
and
(
max-width
:
1280px
)
{
.bg
{
background-size
:
initial
;
}
}
.ds-divide-line
{
}
width
:
2px
;
margin
:
6px
8px
;
@media
screen
and
(
min-width
:
768px
)
and
(
max-width
:
1024px
)
{
height
:
50vh
;
.bg
{
background-size
:
contain
;
}
}
.ds-footer
>
p
{
}
font-size
:
6px
;
@media
screen
and
(
max-width
:
767px
)
{
.footer
{
display
:
none
;
}
}
}
}
@media
screen
and
(
min-width
:
1000px
)
and
(
max-width
:
1023px
)
{
.ds-content-title
{
@media
screen
and
(
min-width
:
1921px
)
and
(
max-width
:
3000px
)
{
padding
:
30px
0
0
0
;
.bg
{
margin
:
10px
0
10px
0
;
width
:
1800px
;
font-size
:
25px
;
height
:
980px
;
position
:
absolute
;
top
:
0
;
left
:
0
;
bottom
:
0
;
right
:
0
;
margin
:
auto
;
background-size
:
100%
;
background
:
url("../img/bg-dp.png")
no-repeat
center
;
}
.bg_box
{
position
:
relative
;
top
:
0
;
left
:
0
;
}
.loginContainer
{
position
:
absolute
;
top
:
120px
;
left
:
5%
;
margin-bottom
:
22px
;
width
:
800px
;
height
:
600px
;
}
}
.ds-content-city
{
.bg-form
{
padding-right
:
0
;
width
:
100%
!important
;
height
:
100%
;
}
}
.
ds-content-city-float
{
.
login-box
{
width
:
100%
;
width
:
100%
;
}
}
.ds-content-city-float
>
p
{
.logo-top-left
{
font-size
:
18px
;
height
:
60px
;
margin-left
:
-180px
;
}
}
.ds-content-district
{
.title
{
/* flex-grow: 1; */
margin
:
14px
0
0
0
;
margin
:
0
auto
;
font-size
:
26px
;
letter-spacing
:
8px
;
margin
:
35px
0
;
}
}
.ds-content-district
>
p
{
.title-line-city
{
font-size
:
18px
;
background
:
url("../img/line1.png")
no-repeat
center
;
background-size
:
100%
2px
;
background-position
:
30px
50%
;
width
:
800px
;
margin-top
:
30px
;
color
:
rgb
(
165
,
165
,
165
);
}
}
.city-btn
{
#login-btn-szjc
{
width
:
215px
;
width
:
460px
;
height
:
40px
;
height
:
138px
;
margin
:
20px
0
;
}
}
}
#login-btn-tyrz
{
@media
screen
and
(
min-width
:
1024px
)
and
(
max-width
:
1279px
)
{
width
:
460px
;
.ds-content-title
{
height
:
138px
;
padding
:
30px
0
0
0
;
margin
:
20px
0
;
margin
:
10px
0
10px
0
;
font-size
:
25px
;
}
}
.ds-content-city
{
.title-line-district
{
padding-right
:
10px
;
background
:
url("../img/line2.png")
no-repeat
center
;
height
:
100%
;
background-size
:
100%
2px
;
background-position
:
30px
50%
;
width
:
800px
;
}
}
.ds-content-city-float
{
.login-btn-district
{
width
:
300px
;
margin
:
15px
0
;
margin-left
:
12%
;
}
}
.ds-content-city-float
>
p
{
.login-btn-idp
{
font-size
:
18px
;
font-size
:
16px
;
margin
:
0
10px
;
}
}
.ds-content-district
{
.login-btn-idp-enable
{
/* flex-grow: 1; */
color
:
rgb
(
29
,
154
,
253
);
margin
:
0
auto
;
}
}
.ds-content-district
>
p
{
.footer
{
font-size
:
18px
;
position
:
absolute
;
bottom
:
20px
;
color
:
white
;
text-align
:
center
;
width
:
100%
;
}
}
.city-btn
{
.footer-text
{
width
:
280px
;
margin
:
5px
0
;
height
:
52px
;
font-size
:
16px
;
margin-bottom
:
82px
;
}
}
}
}
\ No newline at end of file
eden-authcenter-agent/src/main/resources/static/css/loginSuccess.css
0 → 100644
View file @
9dbeb922
#showMessage
{
height
:
100%
;
background
:
url('../img/msg-bg-xp.jpg')
center
no-repeat
;
background-size
:
cover
;
}
.login-success
{
padding
:
12%
8%
;
font-size
:
26px
;
color
:
white
;
letter-spacing
:
8px
;
font-weight
:
900
;
height
:
calc
(
100%
-50px
);
}
.login-success-hello
{
font-size
:
32px
;
margin-bottom
:
45px
;
}
.login-success-footer
{
position
:
absolute
;
bottom
:
0px
;
text-align
:
center
;
width
:
100%
;
background-color
:
white
;
}
.login-success-footer-text
{
margin
:
6px
0
;
font-size
:
14px
;
}
@media
screen
and
(
min-width
:
1025px
)
and
(
max-width
:
1280px
)
{
.login-success
{
font-size
:
22px
;
}
.login-success-hello
{
font-size
:
28px
;
margin-bottom
:
40px
;
}
}
@media
screen
and
(
min-width
:
768px
)
and
(
max-width
:
1024px
)
{
.login-success
{
font-size
:
18px
;
}
.login-success-hello
{
font-size
:
24px
;
margin-bottom
:
30px
;
}
}
@media
screen
and
(
max-width
:
767px
)
{
.login-success
{
font-size
:
14px
;
}
.login-success-hello
{
font-size
:
20px
;
margin-bottom
:
30px
;
}
}
@media
screen
and
(
min-width
:
1921px
)
and
(
max-width
:
3000px
)
{
.login-success
{
font-size
:
32px
;
}
.login-success-hello
{
font-size
:
42px
;
margin-bottom
:
60px
;
}
}
eden-authcenter-agent/src/main/resources/static/css/main_210317.css
0 → 100644
View file @
9dbeb922
/*! HTML5 Boilerplate v4.3.0 | MIT License | http://h5bp.com/ */
/*
* What follows is the result of much research on cross-browser styling.
* Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
* Kroc Camen, and the H5BP dev community and team.
*/
/* ==========================================================================
Base styles: opinionated defaults
========================================================================== */
html
,
button
,
input
,
select
,
textarea
{
color
:
#222
;
}
html
{
width
:
100%
;
height
:
100%
;
font-size
:
1em
;
line-height
:
1.4
;
}
/*
* Remove text-shadow in selection highlight: h5bp.com/i
* These selection rule sets have to be separate.
* Customize the background color to match your design.
*/
::-moz-selection
{
background
:
#b3d4fc
;
text-shadow
:
none
;
}
::selection
{
background
:
#b3d4fc
;
text-shadow
:
none
;
}
/*
* A better looking default horizontal rule
*/
hr
{
display
:
block
;
height
:
1px
;
border
:
0
;
border-top
:
1px
solid
#ccc
;
margin
:
1em
0
;
padding
:
0
;
}
/*
* Remove the gap between images, videos, audio and canvas and the bottom of
* their containers: h5bp.com/i/440
*/
audio
,
canvas
,
img
,
video
{
vertical-align
:
middle
;
}
/*
* Remove default fieldset styles.
*/
fieldset
{
border
:
0
;
margin
:
0
;
padding
:
0
;
}
/*
* Allow only vertical resizing of textareas.
*/
textarea
{
resize
:
vertical
;
}
/* ==========================================================================
Browse Happy prompt
========================================================================== */
.browsehappy
{
margin
:
0.2em
0
;
background
:
#ccc
;
color
:
#000
;
padding
:
0.2em
0
;
}
/* ==========================================================================
Author's custom styles
========================================================================== */
/* ==========================================================================
Helper classes
========================================================================== */
/*
* Image replacement
*/
.ir
{
background-color
:
transparent
;
border
:
0
;
overflow
:
hidden
;
/* IE 6/7 fallback */
*
text-indent
:
-9999px
;
}
.ir
:before
{
content
:
""
;
display
:
block
;
width
:
0
;
height
:
150%
;
}
/*
* Hide from both screenreaders and browsers: h5bp.com/u
*/
.hidden
{
display
:
none
!important
;
visibility
:
hidden
;
}
a
,
button
,
input
{
outline
:
none
;
}
/*
* Hide only visually, but have it available for screenreaders: h5bp.com/v
*/
.visuallyhidden
{
border
:
0
;
clip
:
rect
(
0
0
0
0
);
height
:
1px
;
margin
:
-1px
;
overflow
:
hidden
;
padding
:
0
;
position
:
absolute
;
width
:
1px
;
}
/*
* Extends the .visuallyhidden class to allow the element to be focusable
* when navigated to via the keyboard: h5bp.com/p
*/
.visuallyhidden.focusable
:active
,
.visuallyhidden.focusable
:focus
{
clip
:
auto
;
height
:
auto
;
margin
:
0
;
overflow
:
visible
;
position
:
static
;
width
:
auto
;
}
/*
* Hide visually and from screenreaders, but maintain layout
*/
.invisible
{
visibility
:
hidden
;
}
/*
* Clearfix: contain floats
*
* For modern browsers
* 1. The space content is one way to avoid an Opera bug when the
* `contenteditable` attribute is included anywhere else in the document.
* Otherwise it causes space to appear at the top and bottom of elements
* that receive the `clearfix` class.
* 2. The use of `table` rather than `block` is only necessary if using
* `:before` to contain the top-margins of child elements.
*/
.clearfix
:before
,
.clearfix
:after
{
content
:
" "
;
/* 1 */
display
:
table
;
/* 2 */
}
.clearfix
:after
{
clear
:
both
;
}
/*
* For IE 6/7 only
* Include this rule to trigger hasLayout and contain floats.
*/
.clearfix
{
*
zoom
:
1
;
}
/* ==========================================================================
EXAMPLE Media Queries for Responsive Design.
These examples override the primary ('mobile first') styles.
Modify as content requires.
========================================================================== */
@media
only
screen
and
(
min-width
:
35em
)
{
/* Style adjustments for viewports that meet the condition */
}
@media
print
,
(
-o-min-device-pixel-ratio
:
5
/
4
),
(
-webkit-min-device-pixel-ratio
:
1.25
),
(
min-resolution
:
120dpi
)
{
/* Style adjustments for high resolution devices */
}
/* ==========================================================================
Print styles.
Inlined to avoid required HTTP connection: h5bp.com/r
========================================================================== */
@media
print
{
*
{
background
:
transparent
!important
;
color
:
#000
!important
;
/* Black prints faster: h5bp.com/s */
box-shadow
:
none
!important
;
text-shadow
:
none
!important
;
}
a
,
a
:visited
{
text-decoration
:
underline
;
}
a
[
href
]
:after
{
content
:
" ("
attr
(
href
)
")"
;
}
abbr
[
title
]
:after
{
content
:
" ("
attr
(
title
)
")"
;
}
/*
* Don't show links for images, or javascript/internal links
*/
.ir
a
:after
,
a
[
href
^=
"javascript:"
]
:after
,
a
[
href
^=
"#"
]
:after
{
content
:
""
;
}
pre
,
blockquote
{
border
:
1px
solid
#999
;
page-break-inside
:
avoid
;
}
thead
{
display
:
table-header-group
;
/* h5bp.com/t */
}
tr
,
img
{
page-break-inside
:
avoid
;
}
img
{
max-width
:
100%
!important
;
}
@page
{
margin
:
0.5cm
;
}
p
,
h2
,
h3
{
orphans
:
3
;
widows
:
3
;
}
h2
,
h3
{
page-break-after
:
avoid
;
}
}
body
{
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
background-color
:
#4e97f7
!important
;
background-image
:
-webkit-linear-gradient
(
30deg
,
rgb
(
35
,
129
,
255
),
rgb
(
96
,
203
,
255
));
background-image
:
-moz-linear-gradient
(
30deg
,
rgb
(
35
,
129
,
255
),
rgb
(
96
,
203
,
255
));
background-image
:
linear-gradient
(
30deg
,
rgb
(
35
,
129
,
255
),
rgb
(
96
,
203
,
255
));
align-items
:
center
;
justify-content
:
center
;
}
button
{
border
:
none
;
background-color
:
transparent
;
margin
:
0
;
padding
:
0
6px
;
}
.bg
{
width
:
887px
;
height
:
476px
;
position
:
relative
;
top
:
50%
;
left
:
50%
;
margin-top
:
-238px
;
margin-left
:
-444px
;
background
:
url("../img/bg-xp.png")
no-repeat
center
;
}
.loginContainer
{
width
:
600px
;
position
:
absolute
;
top
:
80px
;
left
:
30px
;
}
.loginContainer
h1
{
color
:
#fff
;
}
.login-box
{
width
:
450px
;
box-sizing
:
border-box
;
border-radius
:
15px
;
}
.title-line-city
{
background
:
url("../img/line1.png")
no-repeat
center
;
background-size
:
200%
2px
;
background-position
:
-152px
50%
;
-ms-background-position
:
-152px
50%
;
width
:
360px
;
margin
:
0
auto
;
margin-top
:
30px
;
color
:
rgb
(
165
,
165
,
165
);
}
#login-btn-szjc
{
background
:
url("../img/btn-szjc.png")
no-repeat
center
;
background-size
:
100%
100%
;
width
:
249px
;
height
:
74px
;
margin
:
10px
0
;
}
#login-btn-tyrz
{
background
:
url("../img/btn-tyrz.png")
no-repeat
center
;
background-size
:
100%
100%
;
width
:
249px
;
height
:
74px
;
margin
:
10px
0
;
}
.title-line-district
{
background
:
url("../img/line2.png")
no-repeat
center
;
background-size
:
200%
2px
;
background-position
:
-165px
50%
;
-ms-background-position
:
-165px
50%
;
width
:
360px
;
margin
:
0
auto
;
color
:
rgb
(
165
,
165
,
165
);
}
.login-btn-district
{
display
:
-webkit-box
;
display
:
-moz-box
;
display
:
-ms-flexbox
;
display
:
-webkit-flex
;
display
:
flex
;
-webkit-box-direction
:
normal
;
margin
:
5px
0
;
margin-left
:
20px
;
}
.login-btn-idp
{
font-size
:
12px
;
font-weight
:
700
;
transform
:
scale
(
0.9
);
-ms-transform
:
scale
(
0.9
);
/* IE 9 */
-moz-transform
:
scale
(
0.9
);
/* Firefox */
-webkit-transform
:
scale
(
0.9
);
/* Safari 和 Chrome */
-o-transform
:
scale
(
0.9
);
/* Opera */
}
.login-btn-idp-enable
{
color
:
rgb
(
29
,
154
,
253
);
}
.footer
{
position
:
absolute
;
bottom
:
20px
;
color
:
white
;
text-align
:
center
;
width
:
100%
;
}
.footer-text
{
margin
:
5px
0
;
font-size
:
12px
;
transform
:
scale
(
0.9
);
-ms-transform
:
scale
(
0.9
);
/* IE 9 */
-moz-transform
:
scale
(
0.9
);
/* Firefox */
-webkit-transform
:
scale
(
0.9
);
/* Safari 和 Chrome */
-o-transform
:
scale
(
0.9
);
/* Opera */
letter-spacing
:
1.5px
;
}
.vertical-line
{
margin
:
0
10px
;
color
:
rgb
(
122
,
186
,
255
);
}
@media
screen
and
(
min-width
:
1025px
)
and
(
max-width
:
1280px
)
{
.bg
{
background-size
:
initial
;
}
}
@media
screen
and
(
min-width
:
768px
)
and
(
max-width
:
1024px
)
{
.bg
{
background-size
:
contain
;
}
}
@media
screen
and
(
max-width
:
767px
)
{
.footer
{
display
:
none
;
}
}
@media
screen
and
(
min-width
:
1921px
)
and
(
max-width
:
3000px
)
{
.bg
{
width
:
1800px
;
height
:
980px
;
position
:
absolute
;
top
:
0
;
left
:
0
;
bottom
:
0
;
right
:
0
;
margin
:
auto
;
background-size
:
100%
;
background
:
url("../img/bg-dp.png")
no-repeat
center
;
}
.bg_box
{
position
:
relative
;
top
:
0
;
left
:
0
;
}
.loginContainer
{
position
:
absolute
;
top
:
250px
;
left
:
5%
;
margin-bottom
:
22px
;
width
:
800px
;
height
:
600px
;
}
.bg-form
{
width
:
100%
!important
;
}
.login-box
{
width
:
100%
;
}
.title-line-city
{
background
:
url("../img/line1.png")
no-repeat
center
;
background-size
:
100%
2px
;
background-position
:
30px
50%
;
width
:
800px
;
margin-top
:
30px
;
color
:
rgb
(
165
,
165
,
165
);
}
#login-btn-szjc
{
width
:
460px
;
height
:
138px
;
margin
:
20px
0
;
}
#login-btn-tyrz
{
width
:
460px
;
height
:
138px
;
margin
:
20px
0
;
}
.title-line-district
{
background
:
url("../img/line2.png")
no-repeat
center
;
background-size
:
100%
2px
;
background-position
:
30px
50%
;
width
:
800px
;
}
.login-btn-district
{
margin
:
15px
0
;
margin-left
:
12%
;
}
.login-btn-idp
{
font-size
:
16px
;
margin
:
0
10px
;
}
.login-btn-idp-enable
{
color
:
rgb
(
29
,
154
,
253
);
}
.footer
{
position
:
absolute
;
bottom
:
20px
;
color
:
white
;
text-align
:
center
;
width
:
100%
;
}
.footer-text
{
margin
:
5px
0
;
font-size
:
16px
;
}
}
eden-authcenter-agent/src/main/resources/static/css/normalize.css
View file @
9dbeb922
...
@@ -212,7 +212,7 @@
...
@@ -212,7 +212,7 @@
p
,
p
,
pre
{
pre
{
margin
:
1
em
0
;
margin
:
0.8
em
0
;
}
}
/**
/**
...
...
eden-authcenter-agent/src/main/resources/static/img/bg-dp.png
0 → 100644
View file @
9dbeb922
301 KB
eden-authcenter-agent/src/main/resources/static/img/bg-xp.png
0 → 100644
View file @
9dbeb922
110 KB
eden-authcenter-agent/src/main/resources/static/img/btn-szjc.png
0 → 100644
View file @
9dbeb922
20.2 KB
eden-authcenter-agent/src/main/resources/static/img/btn-tyrz.png
0 → 100644
View file @
9dbeb922
23 KB
eden-authcenter-agent/src/main/resources/static/img/favicon.ico
0 → 100644
View file @
9dbeb922
1.12 KB
eden-authcenter-agent/src/main/resources/static/img/line1.png
0 → 100644
View file @
9dbeb922
2.15 KB
eden-authcenter-agent/src/main/resources/static/img/line2.png
0 → 100644
View file @
9dbeb922
2.16 KB
eden-authcenter-agent/src/main/resources/static/img/msg-bg-dp.jpg
0 → 100644
View file @
9dbeb922
343 KB
eden-authcenter-agent/src/main/resources/static/img/msg-bg-xp.jpg
0 → 100644
View file @
9dbeb922
253 KB
eden-authcenter-agent/src/main/resources/templates/ds.html
View file @
9dbeb922
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
<html
class=
"no-js"
xmlns:th=
"http://www.w3.org/1999/xhtml"
>
<!--<![endif]-->
<html
class=
"no-js"
xmlns:th=
"http://www.w3.org/1999/xhtml"
>
<!--<![endif]-->
<head>
<head>
<script
type=
"text/javascript"
src=
"../static/js/browser.js
"
></script>
<script
type=
"text/javascript"
th:src=
"@{/static/js/browser.js}
"
></script>
<script
th:inline=
"javascript"
>
<script
th:inline=
"javascript"
>
/*<![CDATA[*/
/*<![CDATA[*/
var
loginUrl1
=
[[
$
{
loginUrl1
}]];
var
loginUrl1
=
[[
$
{
loginUrl1
}]];
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
window
.
location
.
href
=
baseUrl
+
idp
+
"&loginUrl="
+
encodeURIComponent
(
loginUrl3
+
"&auth_source="
+
idp
)
+
"&browser="
+
info
.
browser
+
"&device="
+
info
.
device
+
"&os="
+
info
.
os
+
"&version="
+
info
.
version
;
window
.
location
.
href
=
baseUrl
+
idp
+
"&loginUrl="
+
encodeURIComponent
(
loginUrl3
+
"&auth_source="
+
idp
)
+
"&browser="
+
info
.
browser
+
"&device="
+
info
.
device
+
"&os="
+
info
.
os
+
"&version="
+
info
.
version
;
}
}
}
}
if
(
loginType
.
length
>
0
){
if
(
loginType
&&
loginType
.
length
>
0
){
toLogin
(
loginType
);
toLogin
(
loginType
);
}
}
</script>
</script>
...
@@ -34,81 +34,99 @@
...
@@ -34,81 +34,99 @@
<!--<meta http-equiv="X-UA-Compatible" content="IE=edge">-->
<!--<meta http-equiv="X-UA-Compatible" content="IE=edge">-->
<meta
content=
""
name=
"description"
/>
<meta
content=
""
name=
"description"
/>
<meta
content=
"width=device-width, initial-scale=1"
name=
"viewport"
/>
<meta
content=
"width=device-width, initial-scale=1"
name=
"viewport"
/>
<title>
上海市中小学数字教材
</title>
<title>
发现服务·速享之旅
</title>
<link
rel=
"stylesheet"
th:href=
"@{/static/css/ds.css}"
/>
<link
rel=
"stylesheet"
th:href=
"@{/static/css/ds.css}"
/>
<link
rel=
"stylesheet"
th:href=
"@{/static/css/bootstrap.min.css}"
/>
<link
rel=
"stylesheet"
th:href=
"@{/static/css/bootstrap.min.css}"
/>
<link
rel=
"stylesheet"
th:href=
"@{/static/css/normalize.css}"
/>
<link
rel=
"stylesheet"
th:href=
"@{/static/css/normalize.css}"
/>
<link
rel=
"shortcut icon"
th:href=
"@{/static/img/favicon.ico}"
>
<script
type=
"text/javascript"
th:src=
"@{/static/js/jquery-1.10.2.min.js}"
></script>
<script
type=
"text/javascript"
th:src=
"@{/static/js/jquery-1.10.2.min.js}"
></script>
<!--<script src="../js/vendor/modernizr-2.6.2.min.js"></script>-->
<script
type=
"text/javascript"
th:src=
"@{/static/js/browser.js}"
></script>
<style>
.form-group
{
width
:
100%
;
}
.bg-form
{
display
:
-webkit-box
;
display
:
-moz-box
;
display
:
-ms-flexbox
;
display
:
-webkit-flex
;
display
:
flex
;
-webkit-box-direction
:
normal
;
-webkit-box-orient
:
vertical
;
-moz-flex-direction
:
column
;
-webkit-flex-direction
:
column
;
flex-direction
:
column
;
-webkit-box-align
:
center
;
-moz-align-items
:
center
;
-webkit-align-items
:
center
;
align-items
:
center
;
-webkit-box-pack
:
center
;
-moz-justify-content
:
center
;
-webkit-justify-content
:
center
;
justify-content
:
center
;
}
</style>
</head>
</head>
<body
id=
"body"
style=
"display: none"
>
<body>
<!--[if lt IE 7]>
<!--[if lt IE 7]>
<p class="browsehappy">
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a
You are using an <strong>outdated</strong> browser. Please
href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<a href="http://browsehappy.com/">upgrade your browser</a> to improve
<![endif]-->
your experience.
</p>
<![endif]-->
<!-- Add your site or application content here -->
<!-- Add your site or application content here -->
<!-- Add your site or application content here -->
<div
class=
"bg"
>
<div
class=
"ds"
>
<div
class=
"bg-form"
>
<div
class=
"ds-header"
>
<div
class=
"loginContainer"
>
<img
class=
"ds-header-img"
th:src=
"@{/static/img/Rlogo.png}"
alt=
""
/>
<!--<h1>上海数字教材运营管理中心</h1>-->
</div>
<div
class=
"login-box text-center"
>
<div
class=
"ds-content"
>
<img
class=
"logo-top-left"
th:src=
'@{/static/img/Rlogo.png}'
/>
<div
class=
"ds-content-mask"
>
<p
class=
"ds-content-title"
>
发现服务 · 速享之旅
</p>
<p
class=
"title"
>
发现服务·速享之旅
</p>
<div
class=
"ds-content-source"
>
<div
class=
"title-line-city"
>
<div
class=
"ds-content-city"
>
<p>
请选择登录方式
</p>
<div
class=
"ds-content-city-float"
>
<p>
市认证源
</p>
<button
onclick=
"toLogin('edenoperation')"
class=
"logo-btn city-btn"
style=
"background: white url('../static/img/logo-shszjc.png')"
type=
"button"
></button>
<button
onclick=
"toLogin('dianjiaoguan')"
class=
"logo-btn city-btn"
style=
"background: white url('../static/img/logo-tyrz.png')"
type=
"button"
></button>
</div>
</div>
</div>
<div
class=
"ds-divide-line"
></div>
<button
id=
"login-btn-szjc"
onclick=
"toLogin('edenoperation')"
type=
"button"
></button>
<div
class=
"ds-content-district"
>
<button
id=
"login-btn-tyrz"
onclick=
"toLogin('dianjiaoguan')"
type=
"button"
></button>
<p>
区认证源
</p>
<div
class=
"title-line-district"
>
<div>
<p>
区域认证
</p>
<button
onclick=
"toLogin('qpjy')"
class=
"logo-btn idp-btn"
style=
"background: url('../static/img/logo-qp.png')"
</div>
type=
"button"
></button>
<div
class=
"login-btn-district"
>
<button
onclick=
"toLogin('jsjy')"
class=
"logo-btn idp-btn logo-btn-mask"
disabled=
"disabled"
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('hpjy')"
type=
"button"
>
黄浦区
</button>
style=
"background: url('../static/img/logo-js.png')"
type=
"button"
></button>
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('xhjy')"
type=
"button"
>
徐汇区
</button>
<button
onclick=
"toLogin('hpjy')"
class=
"logo-btn idp-btn logo-btn-mask"
disabled=
"disabled"
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('cnjy')"
type=
"button"
>
长宁区
</button>
style=
"background: url('../static/img/logo-hp.png')"
type=
"button"
></button>
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('jajy')"
type=
"button"
>
静安区
</button>
<button
onclick=
"toLogin('fxjy')"
class=
"logo-btn idp-btn logo-btn-mask"
disabled=
"disabled"
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('ptjy')"
type=
"button"
>
普陀区
</button>
style=
"background: url('../static/img/logo-fx.png')"
type=
"button"
></button>
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('hkjy')"
type=
"button"
>
虹口区
</button>
<button
onclick=
"toLogin('pdjy')"
class=
"logo-btn idp-btn logo-btn-mask"
disabled=
"disabled"
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('ypjy')"
type=
"button"
>
杨浦区
</button>
style=
"background: url('../static/img/logo-pd.png')"
type=
"button"
></button>
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('pdjy')"
type=
"button"
>
浦东新区
</button>
<button
onclick=
"toLogin('ypjy')"
class=
"logo-btn idp-btn logo-btn-mask"
disabled=
"disabled"
</div>
style=
"background: url('../static/img/logo-yp.png')"
type=
"button"
></button>
<div
class=
"login-btn-district"
>
<button
onclick=
"toLogin('cnjy')"
class=
"logo-btn idp-btn logo-btn-mask"
disabled=
"disabled"
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('mhjy')"
type=
"button"
>
闵行区
</button>
style=
"background: url('../static/img/logo-cn.png')"
type=
"button"
></button>
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('bsjy')"
type=
"button"
>
宝山区
</button>
</div>
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('jdjy')"
type=
"button"
>
嘉定区
</button>
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('jsjy')"
type=
"button"
>
金山区
</button>
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('sjjy')"
type=
"button"
>
松江区
</button>
<button
class=
"login-btn-idp login-btn-idp-enable"
onclick=
"toLogin('qpjy')"
type=
"button"
>
青浦区
</button>
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('fxjy')"
type=
"button"
>
奉贤区
</button>
<button
class=
"login-btn-idp"
disabled=
"disabled"
onclick=
"toLogin('cmjy')"
type=
"button"
>
崇明区
</button>
</div>
</div>
</div>
</div>
<!-- <p class="ds-content-text">点击图标前往所属认证源 · · ·</p>
<div class="szjc-login">
<p>如果您曾经参与上海市中小学数字教材试验项目,</p>
<p><a style="color: red;" onclick="toLogin('szjc')">请点击此处使用数字教材账号登录>></a></p>
</div> -->
</div>
</div>
</div>
</div>
<div
class=
"ds-footer"
>
<p
class=
"ds-content-text"
>
版权所有
©
上海教育认证中心
</p>
</div>
</div>
</div>
<div
class=
"footer"
>
<p
class=
"footer-text"
>
版权所有
©
上海教育认证中心
</p>
</div>
<script
th:inline=
"javascript"
>
/*<![CDATA[*/
var
loginUrl1
=
[[
$
{
loginUrl1
}]];
var
loginUrl2
=
[[
$
{
loginUrl2
}]];
var
loginUrl3
=
[[
$
{
loginUrl3
}]];
var
logId
=
[[
$
{
logId
}]];
var
ctxPath
=
/*[[@{/}]]*/
''
;
/*]]>*/
</script>
</body>
</body>
<script
type=
"text/javascript"
>
$
(
document
).
ready
(
function
(){
$
(
"#body"
).
show
();
});
</script>
</html>
</html>
eden-authcenter-agent/src/main/resources/templates/loginsuccess.html
View file @
9dbeb922
...
@@ -3,55 +3,100 @@
...
@@ -3,55 +3,100 @@
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<html
class=
"no-js"
xmlns:th=
"http://www.w3.org/1999/xhtml"
>
<!--<![endif]-->
<html
class=
"no-js"
xmlns:th=
"http://www.w3.org/1999/xhtml"
>
<!--<![endif]-->
<head>
<head>
<meta
charset=
"utf-8"
/>
<meta
charset=
"utf-8"
/>
<!--<meta http-equiv="X-UA-Compatible" content="IE=edge">-->
<!--<meta http-equiv="X-UA-Compatible" content="IE=edge">-->
<meta
content=
""
name=
"description"
/>
<meta
content=
""
name=
"description"
/>
<meta
content=
"width=device-width, initial-scale=1"
name=
"viewport"
/>
<meta
content=
"width=device-width, initial-scale=1"
name=
"viewport"
/>
<title>
上海数字教材运营管理中心
</title>
<title>
发现服务·速享之旅
</title>
<script
type=
"text/javascript"
th:src=
"@{/static/js/jquery-1.10.2.min.js}"
></script>
<script
type=
"text/javascript"
th:src=
"@{/static/js/jquery-1.10.2.min.js}"
></script>
<link
rel=
"stylesheet"
th:href=
"@{/static/css/loginSuccess.css}"
/>
<link
rel=
"shortcut icon"
th:href=
"@{/static/img/favicon.ico}"
>
<!-- <link rel="stylesheet" href="../static/css/loginSuccess.css" /> -->
<!--<script src="../js/vendor/modernizr-2.6.2.min.js"></script>-->
<!--<script src="../js/vendor/modernizr-2.6.2.min.js"></script>-->
</head>
</head>
<body>
<form
th:action=
"${successPostUrl}"
method=
"post"
th:object=
"${clientDataInfo}"
>
<body
style=
"height: 100vh; margin: 0;"
>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.id}"
name=
"authUserInfo.id"
/>
<div
style=
"height: 100%;"
>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.realName}"
name=
"authUserInfo.realName"
/>
<form
th:action=
"${successPostUrl}"
method=
"post"
th:object=
"${clientDataInfo}"
>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.userType}"
name=
"authUserInfo.userType"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.id}"
name=
"authUserInfo.id"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.source}"
name=
"authUserInfo.source"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.realName}"
name=
"authUserInfo.realName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentId}"
name=
"authUserInfo.studentId"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.userType}"
name=
"authUserInfo.userType"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentCode}"
name=
"authUserInfo.studentCode"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.source}"
name=
"authUserInfo.source"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentStage}"
name=
"authUserInfo.studentStage"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentId}"
name=
"authUserInfo.studentId"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentGrade}"
name=
"authUserInfo.studentGrade"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentCode}"
name=
"authUserInfo.studentCode"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentClass}"
name=
"authUserInfo.studentClass"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentStage}"
name=
"authUserInfo.studentStage"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentStageName}"
name=
"authUserInfo.studentStageName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentGrade}"
name=
"authUserInfo.studentGrade"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentGradeName}"
name=
"authUserInfo.studentGradeName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentClass}"
name=
"authUserInfo.studentClass"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentClassName}"
name=
"authUserInfo.studentClassName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentStageName}"
name=
"authUserInfo.studentStageName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentSchoolId}"
name=
"authUserInfo.studentSchoolId"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentGradeName}"
name=
"authUserInfo.studentGradeName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentCodeStatus}"
name=
"authUserInfo.studentCodeStatus"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentClassName}"
name=
"authUserInfo.studentClassName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentSchoolCode}"
name=
"authUserInfo.studentSchoolCode"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentSchoolId}"
name=
"authUserInfo.studentSchoolId"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentSchoolName}"
name=
"authUserInfo.studentSchoolName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentCodeStatus}"
name=
"authUserInfo.studentCodeStatus"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentRegionCode}"
name=
"authUserInfo.studentRegionCode"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentSchoolCode}"
name=
"authUserInfo.studentSchoolCode"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentRegionName}"
name=
"authUserInfo.studentRegionName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentSchoolName}"
name=
"authUserInfo.studentSchoolName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherTrainingNo}"
name=
"authUserInfo.teacherTrainingNo"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentRegionCode}"
name=
"authUserInfo.studentRegionCode"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherTrainingUserName}"
name=
"authUserInfo.teacherTrainingUserName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.studentRegionName}"
name=
"authUserInfo.studentRegionName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherRegionCode}"
name=
"authUserInfo.teacherRegionCode"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherTrainingNo}"
name=
"authUserInfo.teacherTrainingNo"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherCampusCode}"
name=
"authUserInfo.teacherCampusCode"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherTrainingUserName}"
name=
"authUserInfo.teacherTrainingUserName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherTrainingSchoolType}"
name=
"authUserInfo.teacherTrainingSchoolType"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherRegionCode}"
name=
"authUserInfo.teacherRegionCode"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherStage}"
name=
"authUserInfo.teacherStage"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherCampusCode}"
name=
"authUserInfo.teacherCampusCode"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherGrade}"
name=
"authUserInfo.teacherGrade"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherTrainingSchoolType}"
name=
"authUserInfo.teacherTrainingSchoolType"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherSubject}"
name=
"authUserInfo.teacherSubject"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherStage}"
name=
"authUserInfo.teacherStage"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherSchoolId}"
name=
"authUserInfo.teacherSchoolId"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherGrade}"
name=
"authUserInfo.teacherGrade"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherSchoolName}"
name=
"authUserInfo.teacherSchoolName"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherSubject}"
name=
"authUserInfo.teacherSubject"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.returnUrl}"
name=
"returnUrl"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherSchoolId}"
name=
"authUserInfo.teacherSchoolId"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.oauthType}"
name=
"oauthType"
/>
<input
type=
"hidden"
th:value=
"${clientDataInfo.authUserInfo.teacherSchoolName}"
name=
"authUserInfo.teacherSchoolName"
/>
</form>
<input
type=
"hidden"
th:value=
"${clientDataInfo.returnUrl}"
name=
"returnUrl"
/>
<script
type=
"text/javascript"
>
<input
type=
"hidden"
th:value=
"${clientDataInfo.oauthType}"
name=
"oauthType"
/>
$
(
function
(){
</form>
$
(
"form"
).
submit
();
})
<div
id=
"showMessage"
style=
"display: none"
>
</script>
<div
class=
"login-success"
>
<p
class=
"login-success-hello"
>
您好,来自
</body></html>
<span
th:if=
"${clientDataInfo.authUserInfo.source} == 'edenoperation'"
>
上海数字教材
</span>
\ No newline at end of file
<span
th:if=
"${clientDataInfo.authUserInfo.source} == 'dianjiaoguan'"
>
上海基础教育
</span>
<span
th:if=
"${clientDataInfo.authUserInfo.source} == 'qpjy'"
>
青浦教育
</span>
的
<span
th:text=
"${clientDataInfo.authUserInfo.realName}"
></span><span
th:if=
" ${clientDataInfo.authUserInfo.userType != null } and ${clientDataInfo.authUserInfo.userType.name() == 'TEACHER'}"
>
(教师)
</span><span
th:if=
" ${clientDataInfo.authUserInfo.userType != null } and ${clientDataInfo.authUserInfo.userType.name() == 'STUDENT'}"
>
(学生)
</span>
</p>
<p>
欢迎使用“发现服务·速享之旅”
</p>
<p>
统一身份认证服务。
</p>
</div>
<div
class=
"login-success-footer"
>
<p
class=
"login-success-footer-text"
>
版权所有
©
上海教育认证中心
</p>
</div>
</div>
<!-- <p id="showMessage" style="font-size: 26px; text-align:center; display: none">尊敬的
<span th:text="${clientDataInfo.authUserInfo.realName}"></span>(id:
<span th:text="${clientDataInfo.authUserInfo.id}"></span>),恭喜您通过
<span th:if="${clientDataInfo.authUserInfo.source} == 'edenoperation'">上海数字教材</span>
<span th:if="${clientDataInfo.authUserInfo.source} == 'dianjiaoguan'">上海基础教育</span>
<span th:if="${clientDataInfo.authUserInfo.source} == 'qpjy'">青浦教育</span>
登录成功!
</p> -->
</div>
<script
th:inline=
"javascript"
>
var
formSubmitUrl
=
[[
$
{
successPostUrl
}]];
if
(
formSubmitUrl
&&
formSubmitUrl
.
length
>
0
){
$
(
function
(){
$
(
"form"
).
submit
();
});
}
else
{
$
(
"#showMessage"
).
show
();
}
</script>
</body>
</html>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment