您的位置:首页 > 运维架构 > Tomcat

在TOMCAT下实现基于表单验证的登陆方式

2007-10-23 14:47 603 查看
在TOMCAT下实现基于表单验证的登陆方式

参考了网上的一些同仁的文章,作了伟大实践,成功了,感觉果然不错

另外对密码作了些处理,如存在密文(MD5加密)

在登陆页面时,提交数据之前,用JS,对用户输入的密码也进行MD5加密,再进行后台数据(密码也进行了MD5加密)匹配,如果匹配成功(密码密文匹配密文)在一定程序上,也可防止密码泄漏!因为MD5是单身加密,在网络上传输的密码也是密文!

数据库:

create table users (username varchar(20) not null, password varchar2(20) not null)

create table roles (rolename varchar(20) not null)

create table user_roles (username varchar(20) not null, rolename varchar(20) not null)

函数:

//对密码等个人信息进行加密

CREATE OR REPLACE FUNCTION fn_md5(input_string IN VARCHAR2) RETURN VARCHAR2 IS
raw_input RAW(128) := UTL_RAW.cast_to_raw(input_string);
decrypted_raw RAW(2048);
error_in_input_buffer_length EXCEPTION;
BEGIN
DBMS_OBFUSCATION_TOOLKIT.md5(input => raw_input,
checksum => decrypted_raw);
RETURN LOWER(RAWTOHEX(decrypted_raw));
END;

insert into users values('test',fn_md5('11'));

insert into users values('user',fn_md5('11'));

insert into roles values('manager');

insert into user_roles values('user', 'manager');

insert into user_roles values('test', 'manager');

通过将下面的信息拷贝到{tomcat}/conf/文件夹的server.xml文件中,配置Tomcat。(本例使用了薄客户端驱动程序,Tomcat使用内存区域作为缺省的安全区域。)
<Realm
className="org.apache.catalina.realm.JDBCRealm"
debug="99"
driverName="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@{IP address}:{Port}:{Servicename}"
connectionName="{DB Username}"
connectionPassword="{Password}"
userTable="users"
userNameCol="username"
userCredCol="password"
userRoleTable="user_roles"
roleNameCol="rolename"
/>
 用环境变量替换下面的值:

  {IP Address} ━━数据库服务器的IP地址

  {Port} ━━端口号

  {Servicename} ━━服务名字

  {DB Username} ━━数据库登录

  {Password} ━━数据库登录的口令

  10、将Oracle的薄客户机驱动程序JAR文件或数据库的JDBC驱动程序拷贝到{tomcat_home}/server/lib目录中

其他代码见附件

登陆:http://{ip address:port no}/security-form-based/protected/index.jsp
基于表单的验证登陆方式,可参见:http://www.chinabyte.com/20020628/1618084_2.shtml J2EE的安全认证机制

有一个例子程序,不知道,怎么上传不去,来信咨询吧,我 LinChuanSir@gmail.com 临川先生

security-form-based.war
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: