Tuesday, 4 June 2013

Sebuah filter adalah sebuah object yang melaksanakan tugas penfilteran pada saat me-request resource (servlet atau static content), atau juga saat me-respon dari resource, atau juga kedua-duanya.
Filter melaksanakan penfilteran dalam fungsi doFilter. Setiap filter memiliki akses ke objek FilterConfig dari ini dapat memperoleh parameter-parameter inisialisasi, sebuah referensi ke ServletContext yang mana bisa digunakan, sebagai contoh, untuk me-load sumber daya dibutuhkan tugas-tugas pen-filteran.
Filter atau komponen dapat menjamin hanya user yang terotorisasi dapat mengakases. Untuk melindungi kita harus mengembangkan aplikasi kita agar tidak percaya pada kerahasiaan yang memberi access control. Pada masalah file permission.
Dari aplikasi login sebelumnya, akan kita modifikasi sedikit. Setelah user berhasil login, maka user akan mampu mengakses URL /admin/index.jsp
Jika belum login maka tidak diperbolehkan mengakses URL /admin. Proses ini akan ditangani oleh Filter Authentikasi.
Langkah-langkah adalah sebagai berikut :
·  Buat Source Packages baru klik kanan : new java packages ketik nama (contoh jeni3.servlet.filter).
·       Dalam package itu buat class Filter dengan nama AuthenticationFilter yang mengextends interface Filter. Berikut kode lengkapnya :

package jeni3.servlet.filter;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class AuthenticationFilter implements Filter{
private FilterConfig config;
public void init(FilterConfig filterConfig) throws ServletException {
this.config = filterConfig;
} public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException { response.setContentType("text/html;enCoding=UTF-8");
PrintWriter out = response.getWriter(); HttpSession session =
((HttpServletRequest)request).getSession(false);
if (session.getAttribute("user")!= null){
chain.doFilter(request, response);
}else{
out.println("<font color='red'>You are not allowed to access this page. Please <b>log in</b> <a href='../login.html'>here</a></a>");
out.close();



}
} public void destroy() {
this.config = null;
}
}

·         Isikan mapping filter sebelum mapping servlet,
Kodenya sebagai berikut :

<filter>
<filter-name>AuthenticationFilter</filter-name>
<filter-class>jeni3.servlet.filter.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>AuthenticationFilter</filter-name> <url-pattern>/admin/*</url-pattern>
</filter-mapping>

·         Selanjutnya pada Web Pages, buat folder dengan nama admin.
·         Dalam folder admin itu buat file index.jsp dengan kode seperti berikut :

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<met
a http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Admin Page</title>
</head>
<body>
<h1>Admin Page</h1>
<%
if (session.getAttribute("user") != null)
out.println("Welcome<b>"+session.getAttribute("user")+"</b><br/>"); %>
This page is Admin Page
<br/>
<a href="../logout">Logout</a>
</body>
</html>
<br/>
<a href="./admin">Admin Page</a>

·         Untuk memudahkan akses ke /admin, tambahkan link dalam file Web Pages/index.jsp.


<br/>
<a href

="./admin">Admin Page</a> 

·         Kemudian klik Run Project




Popular Post

Powered by Blogger.

- Copyright © Kampusxx -Metrominimalist- Powered by Blogger - Designed by Riza Falafi -