首页 > 代码库 > Tomcat 保护资源
Tomcat 保护资源
最近做了个项目,是在之前的adapter上面,做个功能维护的,也就是简单的CRUD,但是问题来了,这个功能没有做权限,也没有做登录,这个放在网络上就是裸奔啊.后来想到了可以借用tomcat的Realm做个认证,反正使用的人也不多,也就是几个人去做下调整.
现在说怎么使用Realm吧
在web.xml中,添加
<security-constraint> <web-resource-collection> <web-resource-name>Protected Resource</web-resource-name> <url-pattern>/management/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>toptown</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>UserDatabase</realm-name> </login-config> <security-role> <role-name>toptown</role-name> </security-role>
这个就不多说了,就是访问的url 匹配management/*,那么是需要 toptown这个role,使用Basic认证.注意
<login-config> <auth-method>BASIC</auth-method> <realm-name>UserDatabase</realm-name> </login-config>
这里使用的real-name是 UserDatabase,
<auth-constraint> <role-name>toptown</role-name> </auth-constraint>
与
<security-role> <role-name>toptown</role-name> </security-role>
的role-name需要一致.
然后配置
tomcat/conf/tomcat-user.xml 添加一个role,和user,并指定user的role.
web.xml的role必须是这里定义的一个,并且至少有一个用户使用了该role,否则web.xml的配置就没用了,
<role rolename="toptown"/> <user username="toptown" password="t0pt0wn" roles="toptown"/>
然后配置tomcat/conf/server.xml
将如下的配置开启
<GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <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> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
这里的UserDatabase与web.xml指定需要一致.
然后重启tomcat后,访问指定的url,发现需要弹出登陆窗口.输入密码后即可访问了.
这样对一些简单的应用,如果不需要复杂的权限,但是需要一些简单的登陆操作,可以使用这种方式.
Tomcat 保护资源
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。