美文网首页
Nexus3 集成 crowd 插件

Nexus3 集成 crowd 插件

作者: 叨叨软件测试 | 来源:发表于2020-04-05 20:17 被阅读0次

    公司使用的软件开发和协作工具为 Atlassian 系列软件,所以统一使用 crowd 来实现统一登录(SSO)。

    crowd 配置

    具体操作细节见我之前写的 Atlassian 系列软件安装(Crowd+JIRA+Confluence+Bitbucket+Bamboo)

    添加 nexus 用户组

    此处的 nx-admin 组为 nexus 默认的管理组。

    添加 nexus 应用

    注意:“groups” 和 “Remote addresses” 的设置。

    安装 nexus3-crowd-plugin 插件

    Available in Nexus Repository Manager Pro only

    官方 Nexus Pro 直接集成了 Atlassian Crowd 支持,但社区版不支持,需要自己集成开源插件。

    插件地址:https://github.com/pingunaut/nexus3-crowd-plugin

    插件安装问题

    在插件部署过程中,我碰见如下问题:

    2020-04-05 16:33:00,792+0800 ERROR [FelixDispatchQueue]  *SYSTEM nexus3-crowd-plugin - FrameworkEvent ERROR - nexus3-crowd-plugin
    org.osgi.framework.BundleException: Unable to resolve nexus3-crowd-plugin [49](R 49.0): missing requirement [nexus3-crowd-plugin [49](R 49.0)] osgi.wiring.package; (&(osgi.wiring.package=org.sonatype.nexus.security.authz)(version>=3.20.0)) Unresolved requirements: [[nexus3-crowd-plugin [49](R 49.0)] osgi.wiring.package; (&(osgi.wiring.package=org.sonatype.nexus.security.authz)(version>=3.20.0))]
        at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4132)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
        at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
        at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
        at java.lang.Thread.run(Thread.java:748)
    

    解决方法

    # 下载插件代码到本地
    $ git clone https://github.com/pingunaut/nexus3-crowd-plugin.git
    
    # 修改 pom.xml 内容
    $ vi pom.xml
    ......
    <parent>
        <groupId>org.sonatype.nexus.plugins</groupId>
        <artifactId>nexus-plugins</artifactId>
        <!-- 修改 parent 的版本与 nexus3 的版本一致 -->
        <version>3.12.1-01</version>
    </parent>
    ......
    <dependency>
        <groupId>org.sonatype.nexus</groupId>
        <artifactId>nexus-plugin-api</artifactId>
        <!-- 注释掉下面这行,把依赖包打入到插件 jar 中 -->
        <!--<scope>provided</scope>-->
    </dependency>
    ......
    
    # 重新编译打包
    $ mvn clean package
    

    前提条件

    • JDK 8 is installed
    • Sonatype Nexus OSS 3.x is installed

    下载 nexus3-crowd-plugin 插件

    $ cd /home/nexus/nexus3/nexus-3.12.1-01/system
    $ wget https://github.com/pingunaut/nexus3-crowd-plugin/releases/download/nexus3-crowd-plugin-3.4.2/nexus3-crowd-plugin-3.4.2.jar
    

    将绑定添加到 startup.properties

    $ echo "reference\:file\:nexus3-crowd-plugin-3.4.2.jar = 200" >> /home/nexus/nexus3/nexus-3.12.1-01/etc/karaf/startup.properties
    

    配置 crowd.properties

    $ echo "# 配置 crowd 的地址
    crowd.server.url=http://localhost:8095/crowd/
    # 配置 crowd 里该 Application 的名称
    application.name=nexus
    # 配置 crowd 里该 Application 的密码
    application.password=nexus
    cache.authentication=false
    
    # optional:
    timeout.connect=15000
    timeout.socket=15000
    timeout.connectionrequest=15000" > /home/nexus/nexus3/nexus-3.12.1-01/etc/crowd.properties
    
    # 重启验证
    $ sh /home/nexus/nexus3/nexus-3.12.1-01/bin/nexus restart
    

    nexus 设置

    激活插件

    使用 crowd 用户登录

    查看 crowd 的用户信息。


    查看 crowd 的用户详细:


    微信公众号:daodaotest

    相关文章

      网友评论

          本文标题:Nexus3 集成 crowd 插件

          本文链接:https://www.haomeiwen.com/subject/lqypphtx.html