java

자바 ssl 적용 서블릿 필터

초이짬 2013. 11. 1. 09:28
728x90

예전에 자바단에서 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());
}
}

}

728x90