1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.mylutece.modules.openid.web;
35
36 import fr.paris.lutece.plugins.mylutece.web.MyLuteceApp;
37 import fr.paris.lutece.portal.service.i18n.I18nService;
38 import fr.paris.lutece.portal.service.plugin.Plugin;
39 import fr.paris.lutece.portal.service.template.AppTemplateService;
40 import fr.paris.lutece.portal.web.xpages.XPage;
41 import fr.paris.lutece.portal.web.xpages.XPageApplication;
42 import fr.paris.lutece.util.html.HtmlTemplate;
43
44 import java.util.HashMap;
45 import java.util.Locale;
46
47 import javax.servlet.http.HttpServletRequest;
48
49
50
51
52
53 public class OpenIDApp implements XPageApplication
54 {
55
56 public static final String PARAMETER_PAGE = "page";
57 public static final String PARAMETER_PAGE_VALUE = "openid";
58 public static final String PARAMETER_ERROR = "error";
59 private static final String PARAMETER_ACTION = "action";
60
61
62 private static final String TEMPLATE_LOGIN_PAGE = "skin/plugins/mylutece/modules/openid/login_form.html";
63
64
65 private static final String MARK_ERROR_MESSAGE = "error_message";
66 private static final String MARK_URL_DOLOGIN = "url_dologin";
67
68
69 private static final String ACTION_LOGIN = "login";
70 private static final String PROPERTY_PAGETITLE_LOGIN = "module.mylutece.openid.loginPageTitle";
71 private static final String PROPERTY_PATHLABEL_LOGIN = "module.mylutece.openid.loginPagePath";
72
73
74
75
76
77
78
79
80 public XPage getPage( HttpServletRequest request, int nMode, Plugin plugin )
81 {
82 XPage page = new XPage( );
83
84 String strAction = request.getParameter( PARAMETER_ACTION );
85 Locale locale = request.getLocale( );
86
87 if ( ( strAction == null ) || strAction.equals( ACTION_LOGIN ) )
88 {
89 return getLoginPage( page, request, locale );
90 }
91
92 return page;
93 }
94
95
96
97
98
99
100
101
102 private XPage getLoginPage( XPage page, HttpServletRequest request, Locale locale )
103 {
104 HashMap model = new HashMap( );
105
106 String strError = request.getParameter( PARAMETER_ERROR );
107 String strErrorMessage = "";
108
109 if ( strError != null )
110 {
111 strErrorMessage = I18nService.getLocalizedString( strError, locale );
112 }
113
114 model.put( MARK_ERROR_MESSAGE, strErrorMessage );
115 model.put( MARK_URL_DOLOGIN, MyLuteceApp.getDoLoginUrl( ) );
116
117 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_LOGIN_PAGE, locale, model );
118
119 page.setContent( template.getHtml( ) );
120 page.setTitle( I18nService.getLocalizedString( PROPERTY_PAGETITLE_LOGIN, locale ) );
121 page.setPathLabel( I18nService.getLocalizedString( PROPERTY_PATHLABEL_LOGIN, locale ) );
122
123 return page;
124 }
125 }