1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.web.login;
17
18
19 import org.apache.commons.lang.StringUtils;
20 import org.kuali.rice.core.api.config.property.ConfigContext;
21 import org.kuali.rice.krad.util.KRADConstants;
22 import org.kuali.rice.krad.web.controller.UifControllerBase;
23 import org.kuali.rice.krad.web.form.UifFormBase;
24 import org.springframework.stereotype.Controller;
25 import org.springframework.validation.BindingResult;
26 import org.springframework.web.bind.annotation.ModelAttribute;
27 import org.springframework.web.bind.annotation.RequestMapping;
28 import org.springframework.web.bind.annotation.RequestMethod;
29 import org.springframework.web.servlet.ModelAndView;
30
31 import javax.servlet.http.HttpServletRequest;
32 import javax.servlet.http.HttpServletResponse;
33 import java.io.UnsupportedEncodingException;
34 import java.net.URLDecoder;
35 import java.util.Map;
36 import java.util.Properties;
37
38
39
40
41
42
43
44 @Controller
45 @RequestMapping(value = "/login")
46 public class DummyLoginController extends UifControllerBase {
47
48 @Override
49 protected UifFormBase createInitialForm(HttpServletRequest request) {
50 return new DummyLoginForm();
51 }
52
53 @Override
54 @RequestMapping(params = "methodToCall=start")
55 public ModelAndView start(@ModelAttribute("KualiForm") UifFormBase form, HttpServletRequest request,
56 HttpServletResponse response) {
57
58
59 if (form.getView() != null) {
60 String methodToCall = request.getParameter(KRADConstants.DISPATCH_REQUEST_PARAMETER);
61 checkViewAuthorization(form, methodToCall);
62 }
63
64 return getUIFModelAndView(form);
65 }
66
67 @RequestMapping(method = RequestMethod.POST, params = "methodToCall=submit")
68 public ModelAndView submit(@ModelAttribute("KualiForm") DummyLoginForm uifForm, BindingResult result, HttpServletRequest request, HttpServletResponse response) {
69
70 String returnUrl = decode(uifForm.getReturnLocation()) ;
71 if (StringUtils.isBlank(returnUrl)) {
72 returnUrl = ConfigContext.getCurrentContextConfig().getProperty(KRADConstants.APPLICATION_URL_KEY);
73 }
74
75 Properties props = new Properties();
76 String user = uifForm.getLogin_user();
77 props.put("__login_user", user);
78
79 String password = uifForm.getLogin_pw();
80 if (StringUtils.isNotBlank(password)){
81 props.put("__login_pw", password);
82 }
83
84 return performRedirect(uifForm, returnUrl, props);
85 }
86
87 private String decode( String encodedUrl ) {
88 try {
89 return URLDecoder.decode(encodedUrl,"UTF-8") ;
90 } catch (UnsupportedEncodingException e) {
91 throw new RuntimeException( "Unable to decode value: " + encodedUrl, e );
92 }
93 }
94
95 }