分属于2个不同的系统,它们之间不能共用同一套Session,要实现SSO这就需要使用一些特殊的机制来实现它们之间的互相通信。最简单的方法是使用Cookie来实现。(Redmine中支持LDAP认证,不过需要搭建Ldap服务器,现在没搞明白正在研究,稍后再介绍)
首先要修改一下RedMine中的代码,配置action,通过访问www.example.com/redmine/ssologin的url进行登录验证
修改redmine/config/routes.rb添加下面代码
rails 代码
map.signin 'ssologin', :controller => 'account', :action => 'ssologin'
修改redmine/app/controllers/account_controller.rb添加ssologin方法
def ssologin
if cookies[:ssoid] && cookies[:uid] && cookies[:ssoid] == "验证码"
user = User.try_to_ssologin(cookies[:uid])
successful_authentication(user)
else
cookies.delete : ssoid
cookies.delete : uid
flash.now[:error] = "无权访问,请与管理员联系" #错误信息提示
render :template => "account/login" #跳转到登陆页面
end
end
修改redmine/app/models/user.rb
添加用户查询方法
def self.try_to_ssologin(login)
user = find_by_login(login)
user.update_attribute(:last_login_on, Time.now)ifuser && !user.new_record?
user
end
ssh项目里action类内获取用户id和验证码并填入到Cookie中
public String redmineLogin(){
Cookie cUid = new Cookie("uid","admin");//假设登录用户是"admin "
cUid.setMaxAge(-1);
cUid.setPath("/");
Cookie cSsoid = new Cookie("ssoid","验证码");
cSsoid.setMaxAge(-1);
cSsoid.setPath("/");
this.getResponse().addCookie(cUid);
this.getResponse().addCookie(cSsoid);
return SUCCESS;
}
配置Action
<action name="index" class="user.admin.redmineAction" method="index">
<result name="success" type="redirect">http://localhost/redmine/ssologin</result>
</action>
添加一个jsp测试页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<a href="/my/redmine/index">http://localhost/my/redmine/index</a>
</body>
</html>
代码添加完下面就要配置服务器测试使用cookie进行单点登录了。
bitnami-redmine安装完会启动了2个mongrel服务通过apache进行加载均衡,由于不太熟悉Apache,这里使用Nginx进行统一部署。
修改Nginx的nginx.conf添加
server {
listen 80;
server_name localhost;
location ^~ /redmine/ {
proxy_pass http://localhost:3001/redmine/;
}
location / {
proxy_pass http://localhost:8080/;
}
}
访问ht
tp://localhost时页面跳转到Tomcat服务器
访问ht
tp://localhost/redmine时跳转到Mongrel服务器
点击链接后便可以通过cookie传递用户"admin"跳转到Redmine进行验证了
到此Redmine的单点登录功能就简单实现。用户同步问题可以使用Redmine中的Ldap协议进行同步也可以在单点登录验证时,如果发现无此用户就立即创建一个用户。
本文转自http://www.po-soft.com/hi/wlo_o/blog/2043
更多内容请访问OECP社区
分享到:
相关推荐
redmine本身没有提供单点登录功能,这个插件可以提供redmine的单点登录。解压后将这两个文件放置在redmine目录的plugins目录中。具体操作参照README.md。每个解压文件中都有个EADME.md
在"跨域访问的单点登录"这个主题中,我们主要关注的是如何实现不同域名或子域名间的SSO。跨域SSO在现代企业环境中尤其重要,因为许多企业应用可能分布在不同的服务器或云服务上,而用户需要在这些系统间无缝切换。 ...
Redmine在Windows下实现自动备份和异地备份 1.Redmine备份内容 Redmine在Windows下的自动备份实现,包括: 1)Redmine目录的全备份(1周或1个月备份1次,由windows计划来调度执行),将整个Redmine安装的文件夹全部...
此文介绍通过kubernetes安装redmine。 详细介绍请参考博客文章:https://mp.csdn.net/postedit/82082134 此文档为excel格式,保护操作步骤的大部分截图,方便学习。 主要包括以下内容: 从github取得redmine的yaml...
Redmine是一个开源的项目管理软件,而jredmine可能是为了让开发者能够通过Java与Redmine系统进行交互,如创建、更新和查询项目信息等。 **描述分析:**"杰瑞明 使用Java实现Redmine的实现 去做 前端精制 添加更新...
为了简化用户的登录过程,Redmine支持配置单点登录(SSO),管理员可以设置单点登录的相关配置,以便用户可以通过一个集中的身份认证系统来登录Redmine。 16. 从LDAP同步账号 为了避免手动创建用户账号的麻烦,管理...
红矿(Redmine)是一款基于Ruby on Rails的开源项目管理工具,提供了强大的插件机制,允许开发者创建自己的插件,以满足不同的需求。在本文中,我们将详细介绍如何开发一个红矿自定义插件,包括插件的创建、编辑、...
5. **设置循环次数**:如果希望创建更多Issue,可以通过调整线程组的迭代次数来实现。也可以设置CSV Data Set Config的“Sharing mode”来控制文件行的遍历方式,比如“全部线程”或“当前线程”。 6. **运行测试**...
**标题解析:** "redmine-java-api" 是一个与Redmine项目管理软件相关的Java库,它提供了对...通过这些知识点,开发者可以利用redmine-java-api与Redmine系统进行深度集成,实现定制化的项目管理和协作解决方案。
《Redmine GitLab Hook 插件详解:实现代码仓库的无缝集成》 在现代软件开发环境中,项目管理和版本控制工具的协同工作至关重要。Redmine 是一款开源的项目管理软件,而 GitLab 则是广受欢迎的分布式版本控制系统。...
本文将详细介绍如何通过BitNami Stack迁移数据并升级Redmine的过程。 #### 二、准备工作 在正式开始升级之前,需要做好一系列准备工作,以确保整个过程顺利进行。 1. **备份当前环境**:在任何升级操作之前,都应...
### Redmine API 知识点解析 #### 一、引言 Redmine 是一款非常流行的开源项目管理和跟踪系统,它支持多项目管理、问题跟踪、甘特图/时间线、新闻管理、版本控制等特性。为了更好地与外部系统集成以及方便用户通过...
这可能是通过修改代码或者输入命令行参数来实现的,确保选择合适的日期范围以获取有效的数据。 3. **运行统计脚本**:完成配置后,运行提供的脚本(可能是一个Python、Ruby或其他语言的程序),它将从Redmine数据库...
当将SAML与Redmine结合时,可以实现单点登录(Single Sign-On, SSO),提升用户访问系统的便捷性和安全性。"redmine_saml-源码.rar" 文件包含了Redmine插件实现SAML功能的源代码,这对于我们理解Redmine如何集成SAML...
5. **集成能力**:Redmine可以通过API与其他工具(如Git、SVN等版本控制系统,Jenkins等持续集成工具)集成,实现无缝工作流程。 二、Redmine用户手册 `Redmine user_guide.pdf` 提供了详细的用户操作指南,包括:...
Redmine是一款流行的开源问题跟踪系统,为团队管理提供了一整套解决方案,包括任务分配、进度监控、版本控制与BUG...通过以上步骤,用户可以在Redmine中高效地进行项目管理,跟踪问题解决过程,并改善团队协作流程。
通过以上步骤,即使是在局域网环境下,也可以顺利地安装并运行Redmine。这个过程不仅涉及软件的安装和配置,还需要对Redmine和服务器环境有深入的理解。作者通过分享自己的实践经验,帮助读者避免了许多常见问题,...
以下是关于Redmine的一些核心知识点: 1. **Ruby on Rails框架**:Redmine的开发基础是Ruby on Rails,这是一个全栈的Web应用框架,遵循MVC(模型-视图-控制器)架构模式。Rails强调“约定优于配置”,提供了一种...