/*
* Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com)
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: generic.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.authentication.sessionvalidators.databasedrivers;
import com.uwyn.rife.authentication.SessionAttributes;
import com.uwyn.rife.authentication.exceptions.SessionValidatorException;
import com.uwyn.rife.authentication.sessionvalidators.DatabaseSessionValidator;
import com.uwyn.rife.authentication.sessionvalidators.ProcessSessionValidityBasic;
import com.uwyn.rife.config.RifeConfig;
import com.uwyn.rife.database.Datasource;
import com.uwyn.rife.database.queries.Select;
public class generic extends DatabaseSessionValidator
{
protected Select mCheckValidityNoRole = null;
protected Select mCheckValidityNoRoleRestrictHostIp = null;
protected Select mCheckValidityRole = null;
protected Select mCheckValidityRoleRestrictHostIp = null;
public generic(Datasource datasource)
{
super(datasource);
mCheckValidityNoRole = new Select(getDatasource())
.from(RifeConfig.Authentication.getTableAuthentication())
.field(RifeConfig.Authentication.getTableAuthentication()+".userId")
.whereParameter(RifeConfig.Authentication.getTableAuthentication()+".authId", "=")
.whereParameterAnd(RifeConfig.Authentication.getTableAuthentication()+".sessStart", ">");
mCheckValidityNoRoleRestrictHostIp = mCheckValidityNoRole.clone()
.whereParameterAnd(RifeConfig.Authentication.getTableAuthentication()+".hostIp", "=");
mCheckValidityRole = new Select(getDatasource())
.from(RifeConfig.Authentication.getTableAuthentication())
.join(RifeConfig.Authentication.getTableRoleLink())
.join(RifeConfig.Authentication.getTableRole())
.field(RifeConfig.Authentication.getTableAuthentication()+".userId")
.whereParameter(RifeConfig.Authentication.getTableAuthentication()+".authId", "=")
.whereParameterAnd(RifeConfig.Authentication.getTableAuthentication()+".sessStart", ">")
.whereAnd(RifeConfig.Authentication.getTableAuthentication()+".userId = "+RifeConfig.Authentication.getTableRoleLink()+".userId")
.whereParameterAnd(RifeConfig.Authentication.getTableRole()+".name", "role", "=")
.whereAnd(RifeConfig.Authentication.getTableRole()+".roleId = "+RifeConfig.Authentication.getTableRoleLink()+".roleId");
mCheckValidityRoleRestrictHostIp = mCheckValidityRole.clone()
.whereParameterAnd(RifeConfig.Authentication.getTableAuthentication()+".hostIp", "=");
}
public int validateSession(String authId, String hostIp, SessionAttributes attributes)
throws SessionValidatorException
{
return _validateSession(mCheckValidityNoRole, mCheckValidityNoRoleRestrictHostIp, mCheckValidityRole, mCheckValidityRoleRestrictHostIp, new ProcessSessionValidityBasic(), authId, hostIp, attributes);
}
}