Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
Project
Project
Details
Activity
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
fangxinjiang
yifu-mvp
Commits
c26968e6
You need to sign in or sign up before continuing.
Commit
c26968e6
authored
Mar 22, 2023
by
huyuchen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cas修改
parent
96892603
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
27 additions
and
25 deletions
+27
-25
CASproperties.java
...om/yifu/cloud/plus/v1/yifu/auth/config/CASproperties.java
+3
-17
PasswordDecoderFilter.java
...cloud/plus/v1/yifu/auth/filter/PasswordDecoderFilter.java
+24
-8
No files found.
yifu-auth/src/main/java/com/yifu/cloud/plus/v1/yifu/auth/config/CASproperties.java
View file @
c26968e6
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
auth
.
config
;
public
class
CASproperties
{
/**
* 当前应用程序的baseUrl(注意最后面的斜线)
*/
public
static
String
CLIENT_SERVER_NAME
=
"https://qas-mvp-1.worfu.com/"
;
/**
* 当前应用程序的登陆界面
*/
public
static
String
CLIENT_LOGIN_PAGE
=
"http
s://qas-mvp-1.worfu
.com/login"
;
public
static
String
CLIENT_LOGIN_PAGE
=
"http
://mvp.wanxinwork
.com/login"
;
/**
* CAS服务器地址
*/
public
static
String
CAS_SERVER_PATH
=
"http://192.168.1.62:8443/cas"
;
/**
* CAS登陆服务器地址
*/
public
static
String
CAS_SERVER_LOGIN_PATH
=
"http://192.168.1.62:8443/cas/login"
;
/**
* CAS登出服务器地址
*/
public
static
String
CAS_SERVER_LOGOUT_PATH
=
"http://192.168.1.62:8443/cas/logout"
;
public
static
String
CAS_SERVER_PATH
=
"http://192.168.0.240:8443/cas"
;
public
static
String
SPRING_SECURITY_CAS_SERVER
=
"http://192.168.
1.62
:8443/cas/v1/tickets"
;
public
static
String
SPRING_SECURITY_CAS_SERVER
=
"http://192.168.
0.240
:8443/cas/v1/tickets"
;
}
yifu-auth/src/main/java/com/yifu/cloud/plus/v1/yifu/auth/filter/PasswordDecoderFilter.java
View file @
c26968e6
...
...
@@ -3,6 +3,8 @@ package com.yifu.cloud.plus.v1.yifu.auth.filter;
import
cn.hutool.crypto.Mode
;
import
cn.hutool.crypto.Padding
;
import
cn.hutool.crypto.symmetric.AES
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yifu.cloud.plus.v1.yifu.auth.config.CASproperties
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.security.token.CasAuthenticationToken
;
...
...
@@ -51,12 +53,9 @@ public class PasswordDecoderFilter extends UsernamePasswordAuthenticationFilter
throw
new
AuthenticationServiceException
(
"Authentication method not supported: "
+
request
.
getMethod
());
}
else
{
AbstractAuthenticationToken
authRequest
;
String
result
=
request
.
getParameter
(
"cas"
);
String
username
=
this
.
obtainUsername
(
request
);
username
=
username
!=
null
?
username
:
""
;
username
=
username
.
trim
();
if
(
Common
.
isNotNull
(
result
))
{
String
casResult
=
request
.
getParameter
(
"cas"
);
if
(
Common
.
isNotNull
(
casResult
))
{
String
ldapName
=
""
;
try
{
RestTemplate
restTemplate
=
new
RestTemplate
();
HttpHeaders
headers
=
new
HttpHeaders
();
...
...
@@ -64,18 +63,35 @@ public class PasswordDecoderFilter extends UsernamePasswordAuthenticationFilter
MultiValueMap
<
String
,
Object
>
wholeForm
=
new
LinkedMultiValueMap
<>();
wholeForm
.
add
(
"service"
,
CASproperties
.
CLIENT_LOGIN_PAGE
);
HttpEntity
<
MultiValueMap
<
String
,
Object
>>
entity
=
new
org
.
springframework
.
http
.
HttpEntity
<>(
wholeForm
,
headers
);
ResponseEntity
<
String
>
obj
=
restTemplate
.
exchange
(
CASproperties
.
SPRING_SECURITY_CAS_SERVER
+
"/"
+
r
esult
,
HttpMethod
.
POST
,
entity
,
String
.
class
);
ResponseEntity
<
String
>
obj
=
restTemplate
.
exchange
(
CASproperties
.
SPRING_SECURITY_CAS_SERVER
+
"/"
+
casR
esult
,
HttpMethod
.
POST
,
entity
,
String
.
class
);
if
(
obj
.
getStatusCode
().
value
()
==
200
)
{
String
st
=
obj
.
getBody
();
log
.
info
(
"Successful service ticket request: "
+
st
);
wholeForm
.
clear
();
wholeForm
.
add
(
"service"
,
CASproperties
.
CLIENT_LOGIN_PAGE
);
wholeForm
.
add
(
"ticket"
,
st
);
obj
=
restTemplate
.
exchange
(
CASproperties
.
CAS_SERVER_PATH
+
"/p3/serviceValidate?service="
+
CASproperties
.
CLIENT_LOGIN_PAGE
+
"&ticket="
+
st
+
"&format=JSON"
,
HttpMethod
.
GET
,
entity
,
String
.
class
);
log
.
info
(
"cas返回用户信息》》》"
,
JSON
.
toJSONString
(
obj
));
if
(
obj
.
getStatusCode
().
value
()
==
200
){
try
{
JSONObject
result
=
JSON
.
parseObject
(
obj
.
getBody
());
ldapName
=
result
.
getJSONObject
(
"serviceResponse"
).
getJSONObject
(
"authenticationSuccess"
).
getString
(
"user"
);
}
catch
(
Exception
var6
){
throw
new
AuthenticationServiceException
(
"验证失败!统一用户中心未正确获得用户信息!"
);
}
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
());
throw
new
AuthenticationServiceException
(
"验证失败!"
);
}
authRequest
=
new
CasAuthenticationToken
(
usern
ame
,
null
);
authRequest
=
new
CasAuthenticationToken
(
ldapN
ame
,
null
);
}
else
{
String
username
=
this
.
obtainUsername
(
request
);
username
=
username
!=
null
?
username
:
""
;
username
=
username
.
trim
();
String
password
=
this
.
obtainPassword
(
request
);
password
=
password
!=
null
?
decryptAES
(
password
)
:
""
;
authRequest
=
new
UsernamePasswordAuthenticationToken
(
username
,
password
);
...
...
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