公司使用的软件开发和协作工具为 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 的用户详细:

Nexus3 集成 crowd 插件的更多相关文章

  1. solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

    昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ...

  2. 记录一次bug解决过程:eclipse集成lombok插件

    一 总结 eclipse集成插件lombok: 启动Spring Boot项目: sublime全局搜索关键字:ctrl + shift + F JDK8中的lambda表达式使用 二 BUG描述:集 ...

  3. Struts2之—集成Json插件实现Ajax

       上篇博客介绍了Struts2中自己定义结果集实现Ajax,也分析了它的缺点:这样自己定义的结果集,写死了,不能做到client须要什么数据就传什么数据:Struts2之-自己定义结果集实现aja ...

  4. sublime 集成git插件,及git常用命令

    以前用了很久的totoiseSVN,显然不够高大上,开发界的版本装x利器还得是git.然而git的命令行对没怎么用过linux的人可能觉得还不如用gitGUI,可是当你知道sublime可以集成git ...

  5. eclipse集成dorado5插件

    dorado5最好使用jdk1.6 32位,与eclipse j2ee indigo版本兼容最好.其他eclipse版本貌似view编辑时按钮点击事件不生效... 现附上安装包链接(均为官方版本): ...

  6. Jetty入门(1-2)eclipse集成jetty插件并发布运行应用

    一.eclipse集成jetty插件 1.从市场安装jetty插件 2.使用jetty插件发布应用和配置运行环境 debug配置默认共用上述run配置 3.使用jetty插件启动运行和停止运行选中的应 ...

  7. eclipse集成testng插件

    一.TestNG简介 TestNG是一个开源自动化测试框架,它受到JUnit和NUnit的启发,而引入了许多新的创新功能,如依赖测试,分组概念,使测试更强大,更容易做到. 它旨在涵盖所有类别的测试:单 ...

  8. Eclipse集成Hadoop插件

    一.Eclipse集成Hadoop插件 1.在这之前我们需要配置真机上的hadoop环境变量 注:在解压tar包的时候普通解压会出现缺文件的现象,所以在这里我们需要用管理员的方式启动我们的解压软件(我 ...

  9. idea集成python插件

    idea集成python插件 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在继承安装Python插件时,请确认你是否安装Python解释器(Python官网:https://ww ...

随机推荐

  1. Flutter 实现不同样式(有样式) 的TextField (可自定义),类似微博#话题#、@用户,(给TextField加TextSpan)

    描述 先上效果图 在项目中,有 @ 和 话题功能,需要在编辑时即可回显,但是官方原生的TextField不支持对部分文字定义不同的样式,所以封装了一个. 注意:这不是富文本插件,不支持在输入框中显示图 ...

  2. 说两个我在工作中有价值的bug

    看了虫师在公众号上写的一边文章,叫做<面试官问,说一个你在工作非常有价值的bug>.看完虫师举的列子后,我也开始想之前测试的bug,想到之后,觉得有必要记录一下. First,在测试新闻动 ...

  3. 四则运算APP版

    (一)四则运算APP版 这这个Demo的目的就是强化一下本周学习的Android的Jetpack里的新内容,接下来我将通过这个Demo来展示我所学到的新知识. 先列出新学到的知识:ViewModel, ...

  4. mycat主要参数

    以下内容源于mycat官方文档,记录下来方便直接查看: mycat版本:1.6 负载均衡类型,目前的取值有 3 种:1. balance="0", 不开启读写分离机制,所有读操作都 ...

  5. 一文看懂神经网络初始化!吴恩达Deeplearning.ai最新干货

    [导读]神经网络的初始化是训练流程的重要基础环节,会对模型的性能.收敛性.收敛速度等产生重要的影响.本文是deeplearning.ai的一篇技术博客,文章指出,对初始化值的大小选取不当,  可能造成 ...

  6. Activiti7流程定义

    一.什么是流程定义 流程定义是线下bpmn2.0标椎去描述业务流程,通常使用activiti-explorer(web控制台)或 activiti-eclipse-designer 插件对业务流程进行 ...

  7. [算法]合并链表&删除数组重复项

    合并链表 题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1-> ...

  8. Java复合优先于继承

    复合优于继承 继承打破了封装性(子类依赖父类中特定功能的实现细节) 合理的使用继承的情况: 在包内使用 父类专门为继承为设计,并且有很好的文档说明,存在is-a关系 只有当子类真正是父类的子类型时,才 ...

  9. Jedis连接外部Redis

    Jedis连接外部Redis 1.在服务器开放端口redis默认6379,如果有宝塔面板则还需要在宝塔放行6379端口 2.修改redis.conf 注释掉 绑定IP 127.0.0.1 # bind ...

  10. UITextFiled-集合目录

    键盘弹起遮挡输入输入框(UITextFiled或者UITextView)                   对于键盘弹起遮挡输入框的问题以前也想过解决办法比如:监听系统键盘弹出通知.根据每个控件所在 ...