如何让你的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内核设计剖析》



目录
相关文章
|
JSON JavaScript 数据格式
jwt-auth插件实现了基于JWT(JSON Web Tokens)进行认证鉴权的功能。
jwt-auth插件实现了基于JWT(JSON Web Tokens)进行认证鉴权的功能。
311 1
|
JSON 安全 API
在Python Web开发过程中:请简要介绍OAuth和JWT两种认证方式,并说明何时使用它们。
OAuth是开放授权协议,用于第三方应用安全访问用户资源;JWT是JSON格式的安全令牌,用于传递身份和权限。OAuth适合第三方登录和API访问,JWT适用于单点登录和分布式系统中的身份验证。选择取决于应用场景,两者都需确保安全实施,如加密和签名验证。
212 4
|
JSON JavaScript 数据格式
jwt-auth插件实现了基于JWT(JSON Web Tokens)进行认证鉴权的功能
jwt-auth插件实现了基于JWT(JSON Web Tokens)进行认证鉴权的功能
354 1
|
SQL 安全 PHP
web权限
web权限
130 4
|
JSON 安全 API
【专栏】四种REST API身份验证方法:基本认证、OAuth、JSON Web Token(JWT)和API密钥
【4月更文挑战第28天】本文探讨了四种REST API身份验证方法:基本认证、OAuth、JSON Web Token(JWT)和API密钥。基本认证简单但不安全;OAuth适用于授权第三方应用;JWT提供安全的身份验证信息传递;API密钥适合内部使用。选择方法时需平衡安全性、用户体验和开发复杂性。
1605 0
|
JSON 安全 算法
JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案
JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案
952 0
|
设计模式 安全 前端开发
拧螺丝|没有框架也能玩转Web认证
拧螺丝|没有框架也能玩转Web认证
155 0
|
安全 前端开发 Java
拧螺丝|原来还可以这么玩Web认证
拧螺丝|原来还可以这么玩Web认证
299 0
|
存储 负载均衡 NoSQL
web应用的认证与鉴权
认证解决的就是你是谁的问题,当登录一个web电商平台,当你很high的浏览商品的时候并不需要你的认证,但是当你准备下单的时候就需要你登录。要解决你是谁的问题?主要是你的账户有没有钱:)
275 0
|
JSON 前端开发 NoSQL
web全栈后台权限管理系统(VUE+ElementUi+nodeJs+koa2)
web全栈后台权限管理系统(VUE+ElementUi+nodeJs+koa2)
485 0
下一篇
oss教程