本人项目中用的springboot的有些功能在低版本的tomcat中不支持,所以将tomcat升级到了tomcat8.5, 升级就就意味着有采坑的风险(不是逼不得已,大家还是用自己熟悉的稳定的技术和工具)。
问题描述:jenkins中 maven编译成功,发布war到tomcat失败,提示403错误。提示这个错误有两个可能:1、tomcat manager-gui用户认证没有开启。2、访问者限制被开启(默认只能127开头的ip地址和0.0.0.0的ip能访问----本人踩的就是第二个)
直接进入主题:jenkins编译后发布war包到tomcat必要条件
1、tomcat需要进行用户认证
2、对应用户需要manager-gui角色
3、如果tomcat版本是8.5,且异地发布(本机,发布到远程tomcat服务器),需要解除manager中的访问限制(8.0及一下版本,默认开放的)
进入tomcat》webapp》manager》META-INF 找到context.xml ,注释或修改valve节点
<Context antiResourceLocking="false" privileged="true" >
<!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>