1 16 package com.tctest.spring.integrationtests.tests.sellitem; 17 18 import javax.servlet.http.HttpServletRequest ; 19 20 import org.springframework.util.StringUtils; 21 import org.springframework.webflow.context.servlet.ServletExternalContext; 22 import org.springframework.webflow.definition.StateDefinition; 23 import org.springframework.webflow.execution.EnterStateVetoException; 24 import org.springframework.webflow.execution.FlowExecutionListenerAdapter; 25 import org.springframework.webflow.execution.RequestContext; 26 27 public class SellItemFlowExecutionListener extends FlowExecutionListenerAdapter { 28 public void stateEntering(RequestContext context, StateDefinition nextState) throws EnterStateVetoException { 29 String role = nextState.getAttributes().getString("role"); 30 if (StringUtils.hasText(role)) { 31 HttpServletRequest request = ((ServletExternalContext)context.getExternalContext()).getRequest(); 32 if (!request.isUserInRole(role)) { 33 throw new EnterStateVetoException(context.getActiveFlow().getId(), context.getCurrentState().getId(), 34 nextState.getId(), "State requires role '" + role 35 + "', but the authenticated user doesn't have it!"); 36 } 37 } 38 } 39 } 40 | Popular Tags |