zoukankan      html  css  js  c++  java
  • jenkins 集成 redmine 账户验证的方案

    jenkins 集成 redmine 账户验证的方案

    赖勇浩(http://laiyonghao.com

    动机

    Jenkins 是最著名的持续集成工具,又因为它开源免费、插件众多,成为了许多团队做持续集成的首选。

    Jenkins 本身支持多种账户验证方案,但最棒的是它支持验证插件,可以把账户验证的工作完全托管给插件,这就为它支持更多的账户验证方案提供了无限可能。

    script-realm-plugin 无疑是一个天才的验证插件,它的天才之处在于可以运行一个命令,并通过环境变量的方式把账号密码传递给这个命令,然后检验它的 exit code 获得验证结果。这个命令可以是任意语言编写的程序,它可以是一段 shell 脚本,也可以是 C 语言编写的一个程序。在今天它是我们使用 python 编写的一个小程序:redmine-auth

    redmine-auth

    redmine-auth 是一个读取 redmine 账户信息的脚本,实现账户验证。

    得益于 redmine-auth 使用了 SQLAlchemy 的 database orm,只要 SQLAlchemy 支持的数据库,redmine-auth 都可以读取。所以无论 redmine 使用的是 MySQL 还是 postgresql,甚至是 oracle/mssql/sqlite,都可以无缝地使用 redmine-auth 进行账户验证。

    安装

    首先,确保安装了 jenkins 和它的 script-realm-plugin 插件。

    然后,确保安装了 python 和 pip,接下来的工作就很简单,运行使用:

     

    pip install -U redmine-auth

    它会自动安装依赖的 SQLAlchemy,但是数据库驱动需要你手动安装,比如 MySQLdb 需要你自行安装好。

    配置

    首先,进入 jenkins 的 Configure Global Security 页面,确保选择了“启用安全”,然后在“访问控制”-> “安全域” 那里选择“Authenticat via custom script”(需要安装插件以后才有),最后,在 login command 输入框中填入以下内容:

     

    redmine-auth-jenkins --conn-str=连接字符串

    其中“连接字符串”是一个符合 SQLAlchemy 连接字符串定义的字符串,如:

     

    mysql://user:pswd@localhost/redmine

    怎么构造你自己的连接字符串,请参考 SQLAlchemy 的文档(http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#sqlalchemy.create_engine)。简单摘抄最关键的一句放在下面:

    The string form of the URL is dialect+driver://user:password@host/dbname[?key=value..], where dialect is a database name such as mysql, oracle, postgresql, etc., and driver the name of a DBAPI, such as psycopg2, pyodbc, cx_oracle, etc. Alternatively, the URL can be an instance of URL.

    其它

    redmine-auth 是一个 MIT 授权的开源项目,主页:https://github.com/laiyonghao/redmine-auth

  • 相关阅读:
    Python--网络编程
    Linux-安装Windows字体
    计算机网络基础
    Cobalt Strike之CHM、LNK、HTA钓鱼
    Python之——python-nmap的安装与常用方法说明
    Python之单例模式的多种实现
    Cobalt Strike之信息收集、木马钓鱼
    Ubuntu 16.04安装Java 8
    代码审计-MetInfo 6.0.0 sql注入漏洞
    代码审计-凡诺CMS 2.1文件包含漏洞
  • 原文地址:https://www.cnblogs.com/riskyer/p/3299314.html
Copyright © 2011-2022 走看看