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
Commit
c26968e6
authored
Mar 22, 2023
by
huyuchen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cas修改
parent
96892603
Show 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