KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > spring > integrationtests > tests > sellitem > SellItemFlowExecutionListener


1 /*
2  * Copyright 2002-2006 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package com.tctest.spring.integrationtests.tests.sellitem;
17
18 import javax.servlet.http.HttpServletRequest JavaDoc;
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 JavaDoc role = nextState.getAttributes().getString("role");
30     if (StringUtils.hasText(role)) {
31       HttpServletRequest JavaDoc 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