标签:des io 使用 ar 问题 cti sp log on
最近做了个项目,是在之前的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,发现需要弹出登陆窗口.输入密码后即可访问了.
这样对一些简单的应用,如果不需要复杂的权限,但是需要一些简单的登陆操作,可以使用这种方式.
标签:des io 使用 ar 问题 cti sp log on
原文地址:http://my.oschina.net/itwangxinli/blog/309778