예전에 자바단에서 ssl 걸때를 떠올리며 다시 만들어 봤다.....
테스트를 해서 넘어가는거를 보긴 했지만 서버가 실제 ssl 이 적용이 안된 로컬에서 한거라서
실서버 테스트는 당연히 필요 하다. 그리고.....리다이렉트로 이런식으로 할 경우....일부 리졸브(view) 프레임워크에서
문제의 소지가 있을 수 있다고 어디서 본거 같은 기억이 살짝 나는데.....그걸....테스트를 못해보네.....허허
========web.xml=================
<servlet>
<servlet-name>sslEncoding</servlet-name>
<servlet-class>서블릿페이지경로</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>sslEncoding</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
==========java===============
package --;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class SSLfilter
*/
public class SSLfilter extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SSLfilter() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
if (request.getScheme().equalsIgnoreCase("http")) {
String origURL = request.getRequestURL().toString();
String newURL = httpsURL(origURL);
String formData = request.getQueryString();
if (formData != null) {
newURL = newURL + "?" + formData;
}
response.sendRedirect(newURL);
System.out.println(newURL);
} else {
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (request.getScheme().equalsIgnoreCase("http")) {
String origURL = request.getRequestURL().toString();
String newURL = httpsURL(origURL);
String formData = request.getQueryString();
if (formData != null) {
newURL = newURL + "?" + formData;
}
response.sendRedirect(newURL);
System.out.println(newURL);
} else {
}
}
private String httpsURL(String origURL) {
int index = origURL.indexOf(":");
StringBuffer newURL = new StringBuffer(origURL);
newURL.insert(index, 's');
return(newURL.toString());
}
// If the first argument is null, return the second argument.
// Otherwise, convert first argument to a String and
// return that String.
private String replaceNull(Object obj, String fallback) {
if (obj == null) {
return(fallback);
} else {
return(obj.toString());
}
}
}
'java' 카테고리의 다른 글
자바에서 Unsupported major.minor version 51.0 이런류의 에러 (0) | 2014.05.29 |
---|---|
자바 시스템 시간 (0) | 2014.04.08 |
나를 호출한 페이지 찾기 (0) | 2013.10.01 |
String, StringBuffer, StringBuilder 차이 (0) | 2013.08.28 |
정규식을 간단한 이용한 데이터 타입 비교(문자 or 숫자) (0) | 2013.03.29 |