/** * Copyright (c) 2004-2011 Wang Jinbao(Julian Wong), http://www.ralasafe.com * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php */ package org.ralasafe.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.ralasafe.entitle.Query; import org.ralasafe.entitle.QueryManager; /** * Template servlet for delegation policy edit and test. * * @author Wang Jinbao(Julian Wong) * */ public class QueryPolicyAction extends Action { private static final Log log=LogFactory.getLog( QueryPolicyAction.class ); protected void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException { String oper=req.getParameter( "oper" ); if( log.isDebugEnabled() ) { log.debug( "oper=" + oper ); } int id=WebUtil.getIntParameter( req, "id", 0 ); if( "testPolicy".equals( oper ) ) { resp.sendRedirect( "./queryTest.rls?oper=loadFresh&id="+id ); } else { // edit policy // If a user clicks "policy?oper=...&id=..." url, it means user want to edit it // for the first time. So we need load query from database, not from session. // If a user want to continue edit query cached in session, should direct to // url "designQuery?id=..." or "rawQuery?id=..." QueryManager queryMng=WebUtil.getQueryManager( req ); Query query=queryMng.getQuery( id ); org.ralasafe.db.sql.Query sqlQuery=query.getSqlQuery(); if( sqlQuery.isRawSQL() ) { resp.sendRedirect( "./queryRaw.rls?oper=loadFresh&id="+id ); } else { resp.sendRedirect( "./queryDesign.rls?oper=loadFresh&id="+id ); } } } }