如何让你的web具备权限认证

简介: 大多数Web系统都有权限需求,前面已经了解了它的整个认证过程的原理,这节将讲述如何在Tomcat中配置web资源的权限。先以Tomcat默认的认证模式Basic和默认的域UserDatabaseRealm为例,看看如何完成整个配置的。

大多数Web系统都有权限需求,前面已经了解了它的整个认证过程的原理,这节将讲述如何在Tomcat中配置web资源的权限。先以Tomcat默认的认证模式Basic和默认的域UserDatabaseRealm为例,看看如何完成整个配置的。

首先,配置server.xml文件,配置一个名为UserDatabase的数据源,它绑定的存储文件为conf/tomcat-users.xml。然后在Realm节点中引用名为UserDatabase的数据源,这里的realm属于Engine容器级别共享。

<Server>

...

<GlobalNamingResources>

    <Resource name="UserDatabase" auth="Container"

              type="org.apache.catalina.UserDatabase"

              description="User database that can be updated and saved"

              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

              pathname="conf/tomcat-users.xml" />

  </GlobalNamingResources>

...

<Engine>

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"

               resourceName="UserDatabase"/>

</Engine>

...

</Server>

其次,配置tomcat-users.xml文件,定义一个名为tomcatRole的角色,再定义一个用户名为tomcat、密码为tomcat的用户,并赋予其tomcatRole角色。

<tomcat-users>

  <role rolename="tomcatRole"/>

  <user username="tomcat" password="tomcat" roles="tomcatRole"/>

</tomcat-users>

最后,配置web应用的web.xml文件,配置了该web应用security目录下的资源需要tomcatRole角色才能访问。并配置采用BASIC认证模式。

  <security-constraint>

    <web-resource-collection>

      <web-resource-name>security resource</web-resource-name>

      <url-pattern>/security/*</url-pattern>

    </web-resource-collection>

    <auth-constraint>

       <role-name>tomcatRole</role-name>

    </auth-constraint>

  </security-constraint>

  <login-config>

    <auth-method>BASIC</auth-method>

    <realm-name>Tomcat Manager Application</realm-name>

  </login-config>

所有上面全部配置完成后就实现权限认证功能了,当用户访问/security/*对应的资源时浏览器会弹出用户名密码输入框,用户输入后才可以访问。另外realm和认证模式都可以根据实际情况配置成其他类型。


点击订购作者《Tomcat内核设计剖析》



目录
相关文章
|
27天前
|
JSON JavaScript 数据格式
jwt-auth插件实现了基于JWT(JSON Web Tokens)进行认证鉴权的功能。
jwt-auth插件实现了基于JWT(JSON Web Tokens)进行认证鉴权的功能。
43 1
|
2月前
|
SQL 安全 PHP
web权限
web权限
22 4
|
3月前
|
JSON 安全 算法
JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案
JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案
148 0
|
8月前
|
设计模式 安全 前端开发
拧螺丝|没有框架也能玩转Web认证
拧螺丝|没有框架也能玩转Web认证
42 0
|
8月前
|
安全 前端开发 Java
拧螺丝|原来还可以这么玩Web认证
拧螺丝|原来还可以这么玩Web认证
61 0
|
9月前
|
存储 负载均衡 NoSQL
web应用的认证与鉴权
认证解决的就是你是谁的问题,当登录一个web电商平台,当你很high的浏览商品的时候并不需要你的认证,但是当你准备下单的时候就需要你登录。要解决你是谁的问题?主要是你的账户有没有钱:)
112 0
|
10月前
|
JSON 前端开发 NoSQL
web全栈后台权限管理系统(VUE+ElementUi+nodeJs+koa2)
web全栈后台权限管理系统(VUE+ElementUi+nodeJs+koa2)
279 0
|
10月前
|
存储 测试技术 数据安全/隐私保护
python|web框架|增加BasicAuth认证
python|web框架|增加BasicAuth认证
143 0
|
11月前
|
网络协议 安全 网络安全
IIS支持的web认证方法
IIS支持的web认证方法
109 0
|
存储 前端开发 Java
Java Web实战 | 拦截器案例:用户登录权限验证
在配置文件中如果只定义了一个拦截器,程序首先执行拦截器类中的preHandle()方法。如果preHandle()方法返回false,则中断后续所有代码的执行。如果该方法返回true,程序将继续执行处理器以处理请求。当处理器执行过程中没有出现异常时,会执行拦截器中的postHandle()方法。postHandle()方法执行后会通过相关资源向客户端返回响应,并执行拦截器的afterCompletion()方法;如果处理器执行过程中出现异常,将跳过拦截器中的postHandle()方法,直接由前端控制器渲染异常页面返回响应,最后执行拦截器中的afterCompletion()方法。
177 0