JavaWeb应用中的身份验证(编程型)——实现servlet管理SSL

来源:互联网 发布:数据挖掘工具 linux 编辑:程序博客网 时间:2024/05/20 20:01

编程式安全也可以跟SSL结合,但与常规的编程式安全相比,其需要提供以下几点功能:

(1)判断是否在使用SSL

ServletRequest接口提供了两个方法,用于判断是否存在用SSL

getScheme()  -->  返回http或者https        isSecure()   --> 返回false或者true(true说明使用了https)

(2)将非SSL请求重定向为SSL请求

重定向接口:response.sendRedirect

但难点就是产生新的URL,即将http://xxxx转为https://xxxx,java中并没内置的接口实现,只能通过request.getRequestURL方法得到URL,通过字符串处理将http转为https

(3)判断加密密钥的位数

在servlet2.3及以后版本,针对SSL请求,会自动生成一个名为javax.servlet.request.key_size的属性,以指定名称调用request.getAttribute方法得到长度,demo如下:

String keyAttribute = “javax.servlet.request.key_size”Integer keySize =( Integer) request.getAttribute(keyAttribute);If(keySize !=null ){//执行相关代码}

(4)查找加密算法

同样,在servlet2.3及以后版本,针对SSL请求,会自动生成一个名为javax.servlet.request.cipher_suite的属性,以指定名称调用request.getAttribute方法得到加密算法,demo如下:

String cipherAttribute = “javax.servlet.request.cipher_suite”String cipher_suite =( String) request.getAttribute(cipherAttribute);If(cipher_suite !=null ){//执行相关代码}




0 0
原创粉丝点击