java web项目war包部署,使用tomcat对指定接口设置身份认证
先简单说一下需求:
将一个基于springboot2.0开发的java web项目打成war包,通过tomcat部署到一台linux服务器上,项目相关的一些图片等资源也按照一定规则放置在服务器构建好的目录下。现在需要让用户通过http网页链接的方式(在浏览器端)访问图片,为了访问安全,需要在中间加一层用户认证。认证过程希望尽量简单些,所以就尝试用tomcat自带的身份认证来做。
话不多说,直接上实现流程:
首先,由于要访问本地的静态资源,所以在springboot启动类中加了一项静态资源的映射,使用/image映射本地的/home/zxx/darknet/test目录:
public class FilemicroserviceApplication extends WebMvcConfigurationSupport {
@Value("${BASEDIR}")
String BASEDIR; // 本地资源文件根目录
public static void main(String[] args) {
SpringApplication.run(FilemicroserviceApplication.class, args);
}
/**
* 静态资源映射器
* @param registry
*/
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/image/**").addResourceLocations("file:"+BASEDIR+"/");
}
}
然后,将项目打成war包,我的war包名称为filemicroservice.war,部署到linux服务器tomcat上(即放置在tomcat的webapps目录下):

在tomcat的conf目录下需要配置两个文件:
在tomcat-users.xml文件<tomcat-users></tomcat-users>中加上两条代码,设置访问认证的用户角色和该角色的用户账号和密码,此处,我设置了一个名为uav的角色,并且添加了一个账号为uav,密码为123456,角色为uav的用户:
<role rolename="uav"/>
<user username="uav" password="123456" roles="uav"/>
接下来在web.xml中设置身份认证,直接翻到文件最下面,在尾标签</web-app>上方加上这块代码:
<security-constraint>
<web-resource-collection>
<!--项目名称(即放置在webapps下的war包名称)-->
<web-resource-name>filemicroservice</web-resource-name>
<!--需要安全认证的接口-->
<url-pattern>/image/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<!-- 只允许uav角色的用户访问 -->
<role-name>uav</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<!--值可以是BASIC/DIGEST/CLIENT_CERT/FORM-->
<auth-method>BASIC</auth-method>
<!--认证提示信息-->
<realm-name>请输入认证用户的账号密码</realm-name>
</login-config>
<security-role>
<role-name>uav</role-name>
</security-role>
修改保存好上述两个文件后,到bin目录下,通过命令启动tomcat./startup.sh,然后去浏览器通过http访问服务器指定目录下的静态文件:

我在/image映射的目录下存放了一个文件夹,里面放有两张图片,现在,我们通过http去访问图片,浏览器会弹出一个身份认证的弹框:

然后我们输入在tomcat中设置的用户账号和密码,确认访问:

成功了。
java web项目war包部署,使用tomcat对指定接口设置身份认证的更多相关文章
- 将Web项目War包部署到Tomcat服务器
1. 配置Java运行环境 1.1 下载并安装JDK 从官网上下载最新的JDK:http://java.sun.com/javase/downloads/index.jsp ,下载后安装,选择想把JD ...
- IntelliJ IDEA打包WAR并部署运行(mac osx)将Web项目War包部署到Tomcat服务器基本步骤(完整版)
用IntelliJ IDEA做web开发体验很好,但导出war包比eclipse麻烦了不少,以下是解决方案: 打包:1.自动打包:File —> Project Structure —> ...
- 将Web项目War包部署到Tomcat服务器基本步骤
参考来源: http://www.cnblogs.com/pannysp/archive/2012/03/07/2383364.html 1. 常识: 1.1 War包 War包一般是在进行Web ...
- 将Web项目War包部署到Tomcat服务器基本步骤(完整版)
1. 常识: 1.1 War包 War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码. 当开发人员在自己 ...
- 将web项目打成war包部署在tomcat步骤
将web项目打成war包部署在tomcat步骤 1.将自己的项目打成war包. 2.将打包好的war复制到${tomcat.home}/webapps项目下. 3.在${tomcat.hom}/con ...
- IDEA多模块父子依赖maven项目war包部署
IDEA多模块父子依赖maven项目war包部署 Posted on 2018-04-25 | In IDEA | | Visitors 286 IDEA全称为IntrlliJ IDEA,它是一款非常 ...
- SpringBoot之打成war包部署到Tomcat
正常情况下SpringBoot项目是以jar包的形式,正常情况下SpringBoot项目是以jar包的形式,并且SpringBoot是内嵌Tomcat服务器,所以每次重新启动都是用的新的Tomcat服 ...
- Eclipse中的Web项目自己主动部署到Tomcat
一.原因. 1.写java程序有一段时间了,但非常久没用eclipse了.所以使用eclipse编写的web项目部署到tomcat 的方式也不是非常清楚,以下记录一下将Eclipse 上的web项目自 ...
- springmvc项目打war包部署到tomcat访问路径去掉项目名
一般来说,部署到tomcat则是把war包丢到webapps目录下,启动Tomcat会自动解压,成一个war包名称的文件夹项目, 例如imgManager.war 访问的地址一般是localhost: ...
随机推荐
- PHP中跳出循环break,continue,return,exit的区别
1. return 语句的作用 (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行. (2) return 返回一个值给调用该方法的语句,返回值的数 ...
- 文件系统类型(ext4、xfs、fat32、vfat、ntfs、....)
Linux 1.Linux:存在几十个文件系统类型:ext2,ext3,ext4,xfs,brtfs,zfs(man 5 fs可以取得全部文件系统的介绍) 不同文件系统采用不同的方法来管理磁盘空间,各 ...
- docker入门篇
在网上的教程中,大多数是建议利用linux来安装docker,在此我也建议大家用linux安装,为什么?请看下图 docker使用go语言开发,并且运行在linux系统下,而如果想用window运行, ...
- Freemarker + xml 实现Java导出word
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选择功能强大的freemarker+固定格式之后的wordxml实现导出功能.导出word的代码是可 ...
- aws msk
1. 建立3个私网子网 2. 建立msk
- [apue] 神奇的 Solaris pipe
说到 pipe 大家可能都不陌生,经典的pipe调用配合fork进行父子进程通讯,简直就是Unix程序的标配. 然而Solaris上的pipe却和Solaris一样是个奇葩(虽然Solaris前途黯淡 ...
- 2019-9-26:渗透测试,基础学习,nmap扫描kali虚拟机服务
初识Nmap 1, 首先确定kali的ip地址,输入命令ifconfig 2, 开启所需要扫描的服务, 开启ssh:service ssh start, 确认ssh服务是否开启service ssh ...
- Lab6:进程的调度
CPU调度 从就绪队列中挑选下一个占用CPU运行的进程,从多个可用CPU中挑选就绪进程可使用的CPU资源 调度策略 比较调度算法的准则 CPU使用率 吞吐量 周转时间 就绪等待时间 响应时间 吞吐量与 ...
- Theano中的导数
计算梯度 现在让我们使用Theano来完成一个稍微复杂的任务:创建一个函数,该函数计算相对于其参数x的某个表达式y的导数.为此,我们将使用宏T.grad.例如,我们可以计算相对于的梯度 import ...
- Windows的定时任务(Schedule Task)设置
一.设置 1 点击“开始” 2 点击“控制面板” 3 双击“任务计划” 4 双击“添加任务计划” 5 到了“任务计划向导”界面,点击“下一步” 6 点击“浏览”选择需要定时运行的程序(exe文件,ba ...