Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
LinuxSuRen
jenkins
提交
638e04e0
J
jenkins
项目概览
LinuxSuRen
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jenkins
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
638e04e0
编写于
1月 24, 2013
作者:
J
Jesse Glick
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of github.com:jenkinsci/jenkins
上级
c4c2ad2f
0b5a4a35
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
42 addition
and
0 deletion
+42
-0
changelog.html
changelog.html
+4
-0
core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java
...n/java/hudson/security/TokenBasedRememberMeServices2.java
+38
-0
未找到文件。
changelog.html
浏览文件 @
638e04e0
...
...
@@ -61,6 +61,10 @@ Upcoming changes</a>
<li
class=
bug
>
Run parameters do not support folders.
(
<a
href=
"https://issues.jenkins-ci.org/browse/JENKINS-16462"
>
issue 16462
</a>
)
<li
class=
bug
>
Fixed RememberMe cookie signature generation.
(
<a
href=
"https://issues.jenkins-ci.org/browse/JENKINS-16278"
>
issue 16278
</a>
)
</ul>
</div>
<!--=TRUNK-END=-->
...
...
core/src/main/java/hudson/security/TokenBasedRememberMeServices2.java
浏览文件 @
638e04e0
...
...
@@ -23,10 +23,17 @@
*/
package
hudson.security
;
import
java.util.Date
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
jenkins.security.HMACConfidentialKey
;
import
org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices
;
import
org.acegisecurity.userdetails.UserDetails
;
import
org.acegisecurity.Authentication
;
import
org.apache.commons.codec.binary.Base64
;
import
org.springframework.util.Assert
;
/**
* {@link TokenBasedRememberMeServices} with modification so as not to rely
...
...
@@ -51,6 +58,37 @@ public class TokenBasedRememberMeServices2 extends TokenBasedRememberMeServices
return
"N/A"
;
}
@Override
public
void
loginSuccess
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Authentication
successfulAuthentication
)
{
// Exit if the principal hasn't asked to be remembered
if
(!
rememberMeRequested
(
request
,
getParameter
()))
{
if
(
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"Did not send remember-me cookie (principal did not set parameter '"
+
getParameter
()
+
"')"
);
}
return
;
}
Assert
.
notNull
(
successfulAuthentication
.
getPrincipal
());
Assert
.
notNull
(
successfulAuthentication
.
getCredentials
());
Assert
.
isInstanceOf
(
UserDetails
.
class
,
successfulAuthentication
.
getPrincipal
());
long
expiryTime
=
System
.
currentTimeMillis
()
+
(
tokenValiditySeconds
*
1000
);
String
username
=
((
UserDetails
)
successfulAuthentication
.
getPrincipal
()).
getUsername
();
String
signatureValue
=
makeTokenSignature
(
expiryTime
,
(
UserDetails
)
successfulAuthentication
.
getPrincipal
());
String
tokenValue
=
username
+
":"
+
expiryTime
+
":"
+
signatureValue
;
String
tokenValueBase64
=
new
String
(
Base64
.
encodeBase64
(
tokenValue
.
getBytes
()));
response
.
addCookie
(
makeValidCookie
(
tokenValueBase64
,
request
,
tokenValiditySeconds
));
if
(
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"Added remember-me cookie for user '"
+
username
+
"', expiry: '"
+
new
Date
(
expiryTime
)
+
"'"
);
}
}
/**
* Used to compute the token signature securely.
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录