Preventing user from bypassing login

register your PhaseListener in the adf-setting.xml file




<?xml version="1.0" encoding="UTF-8" ?>
<adf-settings xmlns="http://xmlns.oracle.com/adf/settings">
  <adfc-controller-config xmlns="http://xmlns.oracle.com/adf/controller/config">
        <lifecycle>
            <phase-listener>
                <listener-id>DmsLsnr</listener-id>
                <class>com.syntax.view.source.bean.DmsPhaseListener</class>
            </phase-listener>
        </lifecycle>
    </adfc-controller-config>
</adf-settings>

Java Code

package com.syntax.view.source.bean;

import com.corelib.view.util.JSFUtils;


import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;

import javax.servlet.http.HttpSession;


import com.syntax.view.source.shared.ViewGlobals;

import oracle.adf.controller.v2.lifecycle.Lifecycle;
import oracle.adf.controller.v2.lifecycle.PagePhaseEvent;
import oracle.adf.controller.v2.lifecycle.PagePhaseListener;


import org.apache.myfaces.trinidad.render.ExtendedRenderKitService;
import org.apache.myfaces.trinidad.util.Service;


public class DmsPhaseListener implements PagePhaseListener {
    @Override
    public void afterPhase(PagePhaseEvent pagePhaseEvent) {
        //currentUserId.equals("USER_ID") ||
        if (pagePhaseEvent.getPhaseId() == Lifecycle.PREPARE_RENDER_ID) {
            String viewId = FacesContext.getCurrentInstance()
                                        .getViewRoot()
                                        .getViewId();
            System.out.println("Current view id is " + viewId);
            if (!viewId.contains("/login")) {
                String currentUserId = ViewGlobals.SSN_USER_ID;
                if (currentUserId == null ||  currentUserId.trim().length() == 0 ||
                    "0".equals(currentUserId)) {
                    System.out.println("Starting set user offline");
                    FacesContext fctx = FacesContext.getCurrentInstance();
                    ExternalContext ectx = fctx.getExternalContext();
                    String loginURL = JSFUtils.getPageURL("login");
                    JSFUtils.redirect(loginURL);
                }
            }
        }
    }

    @Override
    public void beforePhase(PagePhaseEvent pagePhaseEvent) {
        // TODO Implement this method
    }
}

Comments

Popular posts from this blog

Another user has changed the row with primary key oracle.jbo.Key[12 ].

weblogic windows JPS-01050: Opening of wallet based credential store failed. Reason java.io.IOException: Failed to lock cwallet.sso.lck

Working With File Throgh WebUtill