`
gogo1217
  • 浏览: 151913 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Redmine 支持 Apache HTTP Server 的认证

阅读更多

 

默认情况下 Redmine 是不支持从 header 中获取登录信息,这样就无法使用 Apache HTTP Server 的认证信息。
因此在我们对站点进行了LDAP认证后,还需要再次输入用户名和密码,导致重复登陆,影响用户体验。
我们可以通过简单的修改几个方法达到这个目的,从而做到统一登录。
思路
登录增加一层判断,使得如果没有登录信息,则 header 中去获取登录信息,进行模拟登陆。
修改办法
需要修改的文件为 apps/redmine/htdocs/app/controllers/account_controller.rb

从 header 中获取验证信息,验证信息获取后需要 base64 解密,解密后是 `username:password` 的内容。

      def httpbase_authentication
        require 'base64'
        auth = request.headers['Authorization'].split(' ')
        userpass= Base64.decode64(auth[1]).split(':')
        
        user = User.try_to_login(userpass[0], userpass[1])
        
        if user.nil?
          password_authentication
        elsif user.new_record?
          onthefly_creation_failed(user, {:login => user.login, :auth_source_id => user.auth_source_id })
        else
          successful_authentication(user)
        end
      end

* 修改 login 方法
  增加如果没有登录情况下,从 header 中获取登录信息的逻辑

      def login
        if request.get?
          if User.current.logged?
            redirect_to home_url
          elsif request.headers['Authorization'].nil?
            httpbase_authentication
          end
        else
          authenticate_user
        end
      rescue AuthSourceException => e
        logger.error "An error occured when authenticating #{params[:username]}: #{e.message}"
        render_error :message => e.message
      end
 
0
0
分享到:
评论

相关推荐

    centos6 安装redmine+apache2

    "centos6 安装redmine+apache2" 本资源摘要信息介绍了在 Centos 6 系统上安装 Redmine 和 Apache2 的步骤和要求。Redmine 是一个基于 Web 的项目管理工具,使用 Ruby on Rails 框架开发,需要特定的 Ruby 和 Rails ...

    BitNami的Redmine升级步骤

    - 针对特定错误,可以参考官方文档或社区支持寻求解决方案。 #### 五、结论 通过以上步骤,可以有效地完成BitNami Redmine的升级工作。在整个过程中,最重要的是仔细阅读官方文档,按照指导进行每一步操作,并做好...

    redmine在centos下配置文档

    要在 CentOS 系统中配置 Redmine,需要安装一系列依赖服务,包括 Apache 服务器、Ruby 解释器、MySQL 数据库以及 LDAP 和邮件服务器支持。以下是详细的配置步骤: 一、安装 Apache 服务器 Apache 是一款流行的 Web ...

    redmine_tagging, 为Redmine问题/wiki页面添加简单标签支持.zip

    redmine_tagging, 为Redmine问题/wiki页面添加简单标签支持 Redmine标签插件 这里插件向Redmine添加有用的标记功能:在边栏中标记云标记建议和自动完成Redmine搜索集成( 可能搜索 #tag 以查找 wiki/问题)基于标签的...

    Windows 2003下安装redmine

    **Redmine** 是一款非常流行的项目管理和跟踪系统,它基于 Ruby on Rails 构建,支持多种数据库,并且可以集成多种插件。由于 Redmine 的安装涉及到 Ruby 环境配置、Web 服务器配置等多个环节,因此对于初学者来说...

    如何在局域网安装Redmine(原创)

    1. **操作系统**: Windows Server 或 Linux(推荐使用Linux发行版如Ubuntu Server,因为Redmine在Linux环境下表现更佳)。 2. **Ruby环境**: 安装最新稳定的Ruby版本。 3. **Ruby on Rails**: 确保环境中已安装Rails...

    Redmine API (Redmine 官方文档pdf版)

    Redmine 是一款非常流行的开源项目管理和跟踪系统,它支持多项目管理、问题跟踪、甘特图/时间线、新闻管理、版本控制等特性。为了更好地与外部系统集成以及方便用户通过编程的方式访问其功能,Redmine 提供了一个...

    redmine 2.6插件包

    redmine_bootstrap_kit:让redmine支持bootstrap redmine_checklists:新建任务的时候,可以建立复选框任务列表 redmine_ckeditor:富文本编辑器 redmine_close_button:问题增加关闭按钮 redmine_code_review:代码...

    redmine_gitlab_hook plugin

    该插件利用 GitLab 的 Web Hook 功能,当 GitLab 仓库发生推送事件(如提交、合并请求等)时,会触发一个 HTTP 请求到预设的 Redmine 服务器。这个请求携带了关于仓库变更的信息,Redmine GitLab Hook 插件接收到...

    redmine-3.2.8.tar.gz

    7. **设置Nginx或Apache反向代理**:为了提供更稳定的生产环境,通常会使用Nginx或Apache作为反向代理,将HTTP请求转发到Redmine的Puma或Webrick服务器。 8. **优化性能**:可以考虑使用如Passenger这样的Ruby应用...

    redmine自定义插件开发

    注意:在生成的迁移文件中,需要将时间戳命名的文件改为数字号码前缀的文件名,因为红矿目前的插件引擎不支持时间戳文件。 数据迁移 在创建了模组后,需要进行数据迁移,以便将数据写入数据库。例如: redmine> ...

    redmine在linux上的安装步骤

    Redmine 可以通过 BitNami Redmine Stack 进行安装,BitNami Redmine Stack 是一个一键安装程序包,包括 Apache、MySQL、Ruby On Rails 和 Subversion 等组件。首先,需要下载 BitNami Redmine Stack,然后按照操作...

    支持Redmine'sRESTAPI的Nodejs库Node-Redmine.zip

    Node-Redmine是一个100%支持Redmine's REST API的Nodejs库。安装npm install node-redmine示例代码var Redmine = require('../lib/redmine'); /////////////////////////////////////////////////////////////...

    redmine-3.4.6.tar.gz

    9. **启动服务器**:最后,你可以使用 WEBrick(Ruby 自带的 HTTP 服务器)或选择其他 web 服务器(如 Nginx 或 Apache)来启动 Redmine: ``` bundle exec rails server -e production ``` 10. **访问 Redmine*...

    redmine-java-api

    6. **OAuth认证**:Redmine可能使用OAuth进行身份验证,redmine-java-api需要支持这种认证方式,以便安全地与Redmine服务器交互。 7. **错误处理和异常处理**:在调用API时,可能会遇到网络错误、认证失败等问题,...

    redmine

    11. **多语言支持**:Redmine支持多种语言界面,方便不同地区的用户使用。 12. **API接口**:Redmine提供了API接口,允许与其他系统(如CRM、CI/CD工具)进行集成,实现自动化工作流程。 13. **安装和配置**:...

    redmine安装包

    在浏览器中输入你的服务器地址,例如`http://yourserver.com/redmine`,你应该能看到Redmine的登录页面。首次使用时,需要创建一个管理员账户。 以上是Redmine 20130407版本的基本安装流程。请注意,实际安装可能...

    Redmine1.2 安装指南

    Redmine是一款开源的项目管理软件,它提供了任务跟踪、问题追踪、文档管理等多种功能,深受开发者和团队喜爱。...Redmine的强大之处在于其灵活性和可扩展性,随着你的团队规模和项目需求的变化,它都能提供相应的支持。

Global site tag (gtag.js) - Google Analytics