Rundeck WAR部署Tomcat后访问localhost:8080/rundeck报403错误
问题原因说明
Rundeck WAR包部署到Tomcat时,默认使用自带的realm.properties文件作为身份认证源,不会读取Tomcat原生的tomcat-users.xml配置,这就是你配置在tomcat-users.xml里的凭证无法登录的核心原因。你访问时出现的403错误是因为使用了不被Rundeck认证体系识别的账号尝试登录导致的。
解决办法
方案1:使用默认认证体系(无需额外改配置,最快生效)
直接使用你已经配置在realm.properties里的账号登录即可,两组账号均匹配你admin.aclpolicy里的权限规则,登录后不会出现403错误:
- 管理员账号:用户名
administrador,密码administrador,拥有全部操作权限 - 普通用户账号:用户名
usuario,密码usuario,拥有普通用户权限
注意:你的配置文件中grails.serverURL和framework.server.url均配置为http://10.188.25.96:8080/rundeck,建议直接访问该地址测试登录,避免使用localhost访问出现地址不匹配导致的权限错误。
方案2:切换为Tomcat tomcat-users.xml认证
如果需要统一使用Tomcat的用户管理体系,按如下步骤修改配置:
- 进入Tomcat的
webapps/rundeck/WEB-INF目录,编辑web.xml文件,找到<login-config>配置块,修改为:
<login-config> <auth-method>FORM</auth-method> <realm-name>UserDatabase</realm-name> <form-login-config> <form-login-page>/user/login</form-login-page> <form-error-page>/user/error</form-error-page> </form-login-config> </login-config>
- 检查Tomcat
conf目录下的server.xml,确认已开启UserDatabaseRealm(Tomcat 8.5版本默认已开启,没有的话添加到<Host>块内):
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
- 重启Tomcat服务,之后即可使用
tomcat-users.xml中配置的admin/admin、user/user账号登录Rundeck。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

