如何保障Nexus仓库路径安全?为何未登录可访问本地dev-repo?
为什么未登录Nexus仍能访问hosted仓库?
这个问题我之前搭建Nexus私有库时也踩过坑,其实核心原因是Nexus默认给匿名用户开放了仓库的读权限,并不是你以为的默认用管理员账号锁死所有仓库。
具体原因拆解:
- Nexus的权限体系里,默认存在一个
nx-anonymous角色,所有未登录的访问都会被归到这个角色下。 - 这个角色默认被赋予了
repository-view-*-*-read权限——简单说就是对所有仓库(包括你新建的dev-repo)拥有只读权限,所以你不用登录也能在浏览器里浏览仓库内容、查看构件列表。
关于你Gradle配置凭证的补充:
你在Gradle里配置了账号密码,其实如果保持匿名读权限开启,不加凭证也能正常下载构件;但如果后续你需要往这个hosted仓库上传构件,或者想要限制只有授权用户才能访问仓库,那凭证就必须配置,同时还要调整Nexus的权限设置。
如何关闭匿名访问(让仓库必须登录才能访问):
如果你想让dev-repo只能被授权用户访问,可以按以下步骤操作:
- 登录Nexus后台,进入左侧菜单的 Security → Roles
- 找到
nx-anonymous角色,点击编辑 - 在权限列表里,去掉和
dev-repo相关的读权限(比如repository-view-dev-repo-maven2-read),或者直接删除repository-view-*-*-read这个全局读权限 - 保存后再用浏览器访问仓库地址,就会跳转到Nexus的登录页面了
内容的提问来源于stack exchange,提问作者Alex Minjun Yu
相关产品推荐
相关产品推荐

