source: main/trunk/src/main/webapps/ibisph-view/WEB-INF/config/spring/user.xml @ 3713

Last change on this file since 3713 was 3713, checked in by Garth Braithwaite, 10 years ago

java and view - middle of refactoring user modelmaps. renamed the jars to include the version numbmer.

File size: 17.3 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2
3<!--
4        IBIS-PH View System's "user" related Spring properties. These
5        properties are all specific to the "user" type requests and include
6        user specific resources, controllers, and views.
7-->
8
9<beans default-lazy-init="false" default-autowire="no"
10        xmlns="http://www.springframework.org/schema/beans"
11        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
12        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"
13>
14
15        <!--  M O D E L S   /   C O N T R O L L E R   R E S O R U C E S -->
16        <bean id="User.UserProfile.ModelMapKey" class="java.lang.String">
17                <constructor-arg type="java.lang.String" value="UserProfile"/>
18        </bean>
19
20        <bean id="User.HTMLContent.XML.Path" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
21                <property name="targetObject" ref="Common.Context.Servlet"/>
22                <property name="targetMethod" value="getRealPath"/>
23                <property name="arguments"><list><value>xml/user/html_content</value></list></property>
24        </bean>
25
26        <bean id="User.XML.Path" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
27                <property name="targetObject" ref="Common.Context.Servlet"/>
28                <property name="targetMethod" value="getRealPath"/>
29                <property name="arguments"><list><value>xml/user</value></list></property>
30        </bean>
31
32        <bean id="User.RegistartionStatus.HTMLContent.XML.SystemID" class="org.ibisph.systemid.FileSystemID">
33                <constructor-arg ref="User.HTMLContent.XML.Path"/>
34                <constructor-arg value="Status.xml"/>
35        </bean>
36
37        <!-- MAIL NOTES:
38                http://wheelersoftware.com/articles/spring-javamail-2.html
39                http://static.springsource.org/spring/docs/3.1.x/reference/html/mail.html
40                http://forum.springsource.org/showthread.php?33167-How-to-use-Spring-Mail-to-send-mails-via-Gmail-s-SMTP-server
41                http://www.javacodegeeks.com/2010/07/java-mail-spring-gmail-smtp.html
42
43                if you're using JDK 1.5 or earlier, include the "activation.jar" file
44                that you obtained from downloading the JavaBeans Activation Framework,
45                in your CLASSPATH. 
46
47                Sun SMTP properties:
48                http://javamail.kenai.com/nonav/javadocs/com/sun/mail/smtp/package-summary.html
49               
50                GMAIL NOTES:
51                SSL (smtpS)
52                        <property name="protocol" value="smtps"/>
53                        <property name="port" value="465"/>  or port 25
54
55                TLS:
56                        <property name="protocol" value="smtp"/>
57                        <property name="port" value="587"/>
58                        <prop key="mail.smtp.starttls.enable">true</prop>
59
60                doesn't appear to matter:
61                <prop key="mail.smtp.auth">true</prop>
62                <prop key="mail.user">garth.braithwaite@stgutah.com</prop>
63                       
64                velocity template example:
65                http://www.javabeat.net/articles/83-email-integration-in-spring-framework-1.html
66
67        <bean id="User.MailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
68                <description>
69                        Local, internal webapp mail sender config that can be used for
70                        testing without having to have the app server setup with a JNDI
71                        mail session configuration.  If the app server is NOT setup for
72                        JNDI then this code and the refs within the web.xml (and any
73                        enterprise app server config file refs) should be commented out as
74                        leaving in will cause the app to not load/start.  Note also that if
75                        using this configuration the mail.jar and possibly the activation.jar
76                        will need to be put into the app's lib folder.  If/when the JNDI
77                        is used it is important to remove those jars from the webapp's lib.
78                </description>
79
80                <property name="protocol" value="smtps"/>
81                <property name="host" value="smtp.gmail.com"/>
82                <property name="port" value="465"/>
83                <property name="username" value=""/>
84                <property name="password" value=""/>
85                <property name="javaMailProperties">
86                        <props>
87                                <prop key="mail.smtp.connectiontimeout">200000</prop>
88                                <prop key="mail.smtp.timeout">10000</prop>
89                                <prop key="mail.debug">true</prop>
90                        </props>
91                </property>
92        </bean>
93        -->
94        <bean id="User.MailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
95                <description>
96                        Mail sender config that works when the app server is setup for JNDI.
97                        If the app server is NOT setup for JNDI then this code and the refs
98                        within the web.xml (and any enterprise app server config file refs)
99                        should be commented out as it will cause the app to not load/start.
100                        Note that for this to function properly the app server must be setup
101                        with the approp entries and jar file(s) (mail 1.4+, and the activation
102                        .jar if using jdk 1.5).  The app's context must also be configed to
103                        expose the resource.  The name must match the name in the web.xml
104                        resource-ref element which must match the jndiName property below.
105                        Also note that the complete JNDI name is not needed if the app is
106                        configed with the "resourceRef" set to true. 
107
108                        PASSWORD NOTE: In some instances when the app server does NOT provide
109                        a password entry and does not accept a mail.protocol.password or
110                        mail.password property value you will need to supply:
111                        [property name="password" value="xxxxxxx"] which defeats the purpose
112                        of a externally defined mail resource.
113                </description>
114            <property name="session">
115                        <bean class="org.springframework.jndi.JndiObjectFactoryBean">
116                                <property name="jndiName" value="mail/doh_ibisph"/>
117                                <property name="resourceRef" value="true"/>
118                        </bean>
119                </property>
120        </bean>
121
122
123
124        <!-- S E R V I C E S -->
125        <bean id="User.XML.Service" class="org.ibisph.user.service.UserProfileXML">
126                <property name="XMLPath"            ref="User.XML.Path"/>
127                <property name="documentDAO"        ref="Common.XML.DAO"/>
128        </bean>
129
130        <bean id="User.UserProfileFromHTTPRequestParameters.Service" class="org.ibisph.web.HTTPRequestParametersToContainerElementService">
131                <description>HTTP REQUEST PARAMS to USER - POSTED - SAVE USER PROFILE</description>
132                <property name="containerElementName" value="USER"/>
133                <property name="HTTPRequestParameterNameToXMLElementNameList">
134                        <list>
135                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="fullName"/>        <constructor-arg value="FULL_NAME"/></bean>
136                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="emailAddress"/>    <constructor-arg value="ID"/></bean>
137                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="emailAddress"/>    <constructor-arg value="EMAIL_ADDRESS"/></bean>
138                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="password"/>        <constructor-arg value="PASSWORD"/></bean>
139                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="telephoneNumber"/> <constructor-arg value="TELEPHONE_NUMBER"/></bean>
140                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="organization"/>    <constructor-arg value="ORGANIZATION"/></bean>
141                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="securityQuestion"/><constructor-arg value="SECURITY_QUESTION"/></bean>
142                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="securityAnswer"/>  <constructor-arg value="SECURITY_ANSWER"/></bean>
143                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="captcha"/>         <constructor-arg value="CAPTCHA"/></bean>
144                        </list>
145                </property>
146        </bean>
147
148        <bean id="User.UserAccessFromHTTPRequestParameters.Service" class="org.ibisph.web.HTTPRequestParametersToContainerElementService">
149                <description>used to load the email address and captcha value into a stubbed out user xml document.</description>
150                <property name="containerElementName" value="USER"/>
151                <property name="HTTPRequestParameterNameToXMLElementNameList">
152                        <list>
153                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="emailAddress"/>    <constructor-arg value="ID"/></bean>
154                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="emailAddress"/>    <constructor-arg value="EMAIL_ADDRESS"/></bean>
155                                <bean class="org.ibisph.web.HTTPRequestParameterNameToXMLElementName"><constructor-arg value="captcha"/>         <constructor-arg value="CAPTCHA"/></bean>
156                        </list>
157                </property>
158        </bean>
159
160        <bean id="User.EmailVerification.Service" class="org.ibisph.user.service.EmailVerification">
161                <property name="javaMailSender"  ref="User.MailSender"/>
162                <property name="mailMessageFrom" value="user.verification@ibisph.org"/>
163                <property name="mailSubject"     value="User Account Verification"/>
164                <property name="mailMessageVerificationRequestURLSearchReplaceSignature" value="[URL_SearchSignature]"/>
165                <property name="mailMessageHTML">
166                        <value><![CDATA[
167                                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
168                                        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
169                                <html>
170                                        <head>
171                                                <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
172                                                <title>Verification Email</title>
173                                        </head>
174                                <body>
175                                                To complete your account registration you must verify your
176                                                email by clicking on the <a href="[URL_SearchSignature]">
177                                                Activate Your Account</a> link.
178                                        </body>
179                                </html>
180                        ]]></value>
181                </property>
182                <property name="verificationRequestURLPath" value="verify/user/registration"/>
183        </bean>
184
185
186
187        <!-- X M L   M O D E L S -->
188        <bean id="User.DefaultHTMLContent.ModelMap" class="org.ibisph.modelmap.DefaultModelIfNullModel" parent="Common.XMLModelMap.CommonProperties">
189        </bean>
190        <bean id="User.HTMLContent.ModelMap" class="org.ibisph.systemid.modelmap.SystemIDFromHTTPRequestEndOfPathInfo" parent="Common.XMLModelMap.CommonProperties">
191                <property name="FilePath" ref="User.HTMLContent.XML.Path"/>
192        </bean>
193
194        <bean id="User.UserRegistrationFromHTTPRequest.ModelMap" class="org.ibisph.web.modelmap.HTTPRequestParametersToXML">
195                <description>
196                        Loads the HTTP Request Parameters into a base USER XML container
197                        element which is placed into the model map.  This code is used to
198                        save a new user registration information.
199                </description>
200                <property name="HTTPRequestParametersToContainerElementService" ref="User.UserProfileFromHTTPRequestParameters.Service"/>
201                <property name="modelMapKey" ref="User.UserProfile.ModelMapKey"/>
202        </bean>
203
204        <bean id="User.ProcessUserRegistration.ModelMap" class="org.ibisph.user.modelmap.ProcessUserRegistration">
205                <property name="userProfileModelMapKey" ref="User.UserProfile.ModelMapKey"/>
206                <property name="userProfileService"     ref="User.XML.Service"/>
207                <property name="emailVerificationService" ref="User.EmailVerification.Service"/>
208        </bean>
209
210        <bean id="User.VerifyUserRegistration.ModelMap" class="org.ibisph.user.modelmap.VerifyUserRegistration">
211                <property name="userProfileModelMapKey" ref="User.UserProfile.ModelMapKey"/>
212                <property name="userProfileService"     ref="User.XML.Service"/>
213        </bean>
214
215        <bean id="User.UserAccessFromHTTPRequest.ModelMap" class="org.ibisph.web.modelmap.HTTPRequestParametersToXML">
216                <description>
217                        Loads the HTTP Request Parameters into a base USER XML container
218                        element which is placed into the model map. 
219                </description>
220                <property name="HTTPRequestParametersToContainerElementService" ref="User.UserAccessFromHTTPRequestParameters.Service"/>
221                <property name="modelMapKey" ref="User.UserProfile.ModelMapKey"/>
222        </bean>
223
224        <bean id="User.StatusHTMLContent.ModelMap" class="org.ibisph.modelmap.SimpleModelMap" parent="Common.XMLModelMap.CommonProperties">
225                <property name="model" ref="User.RegistartionStatus.HTMLContent.XML.SystemID"/>
226        </bean>
227
228        <bean id="User.SendUserAccess.ModelMap" class="org.ibisph.user.modelmap.SendAccess">
229                <property name="userProfileModelMapKey" ref="User.UserProfile.ModelMapKey"/>
230                <property name="userProfileService"     ref="User.XML.Service"/>
231        </bean>
232
233        <bean id="User.QueryDefinitionsXML.ModelMap" class="org.ibisph.querydefinition.modelmap.QueryDefinitionsFromHTTPRequest">
234                <property name="modelMapKey" value="QueryDefinitions"/>
235                <property name="queryDefinitionsService" ref="QueryDefinition.XML.Service"/>
236        </bean>
237
238        <bean id="User.UserAuthoritiesXML.ModelMap" class="org.ibisph.user.springsecurity.UserAuthoritiesXMLModelMap">
239                <property name="modelMapKey" value="UserAuthorities"/>
240        </bean>
241
242
243
244        <!--  C O N T R O L L E R S  -->
245        <bean id="User.HTMLContent.Controller" class="org.ibisph.web.springmvc.ModelMapListProcessingController">
246                <property name="modelMapList">
247                        <list>
248                                <ref bean="User.HTMLContent.ModelMap"/>
249                                <ref bean="User.DefaultHTMLContent.ModelMap"/>
250                                <ref bean="Common.ModifiedDateFromFileSystemID.ModelMap"/>
251                                <ref bean="Common.HTTPRequestParameters.ModelMap"/>
252                                <ref bean="Common.WebAppURLContextPrefixFromHTTPRequest.ModelMap"/>
253                        </list>
254                </property>
255                <property name="view" ref="Home.HTMLContent.View"/>
256        </bean>
257
258        <bean id="User.ProcessUserRegistration.Controller" class="org.ibisph.web.springmvc.ModelMapListProcessingController">
259                <description>
260                        /save/user/registration
261                        1) Get the http request params into a User XML doc.
262                        2) Check captcha - if not matches then add bad captcha message
263                        3) Check if user already exists - if so send already exists message
264                        4) Get the verification string
265                        5) Send the email with verification string
266                        6) If error sending then return message
267                        7) Else set the user's verification value in the XML and set
268                           message to verification email sent message.
269                        8) Save to disk
270                        9) Return message as the model to the message.xslt page.
271                </description>
272                <property name="modelMapList">
273                        <list>
274                                <ref bean="User.UserRegistrationFromHTTPRequest.ModelMap"/>
275                                <ref bean="User.ProcessUserRegistration.ModelMap"/>
276                                <ref bean="User.StatusHTMLContent.ModelMap"/>
277                                <ref bean="Common.ModifiedDateFromFileSystemID.ModelMap"/>
278                                <ref bean="Common.WebAppURLContextPrefixFromHTTPRequest.ModelMap"/>
279                        </list>
280                </property>
281                <property name="view" ref="User.Status.View"/>
282        </bean>
283
284        <bean id="User.VerifyUserRegistration.Controller" class="org.ibisph.web.springmvc.ModelMapListProcessingController">
285                <description>
286                        verify/user/registration/email address/session id
287                        1) parse the username and verification code from the end of the request URL.
288                        2) If matches set the status to VERIFIED
289                        3)   and save.
290                        4) Else MESSAGE DOESN"T MATCH CONTACT SYS ADMIN.
291                        5) message page has a link with verify page.
292                </description>
293                <property name="modelMapList">
294                        <list>
295                                <ref bean="User.VerifyUserRegistration.ModelMap"/>
296                                <ref bean="User.StatusHTMLContent.ModelMap"/>
297                                <ref bean="Common.ModifiedDateFromFileSystemID.ModelMap"/>
298                                <ref bean="Common.WebAppURLContextPrefixFromHTTPRequest.ModelMap"/>
299                        </list>
300                </property>
301                <property name="view" ref="User.Status.View"/>
302        </bean>
303
304        <bean id="User.EmailAccess.Controller" class="org.ibisph.web.springmvc.ModelMapListProcessingController">
305                <property name="modelMapList">
306                        <list>
307                                <ref bean="User.UserAccessFromHTTPRequest.ModelMap"/>
308                                <ref bean="User.SendUserAccess.ModelMap"/>
309                                <ref bean="User.StatusHTMLContent.ModelMap"/>
310                                <ref bean="Common.ModifiedDateFromFileSystemID.ModelMap"/>
311                                <ref bean="Common.WebAppURLContextPrefixFromHTTPRequest.ModelMap"/>
312                        </list>
313                </property>
314                <property name="view" ref="User.Status.View"/>
315        </bean>
316
317        <bean id="User.QuerySelectionList.Controller" class="org.ibisph.web.springmvc.ModelMapListProcessingController">
318                <description>    </description>
319                <property name="modelMapList">
320                        <list>
321                                <ref bean="Secure.DefaultSelection.ModelMap"/>
322                                <ref bean="User.QueryDefinitionsXML.ModelMap"/>
323                                <ref bean="User.UserAuthoritiesXML.ModelMap"/>
324                                <ref bean="Common.HTTPRequestParameters.ModelMap"/>
325                                <ref bean="Common.WebAppURLContextPrefixFromHTTPRequest.ModelMap"/>
326                        </list>
327                </property>
328                <property name="view" ref="User.QuerySelectionList.View"/>
329        </bean>
330
331
332
333        <!--  V I E W   R E S O U R C E S  -->
334        <bean id="User.HTMLContent.XSLT.SystemID" class="org.ibisph.systemid.FileSystemID">
335                <constructor-arg ref="Common.Webapp.RootPath"/>
336                <constructor-arg value="xslt/html/user/HTMLContentPage.xslt"/>
337        </bean>
338
339        <bean id="User.Status.XSLT.SystemID" class="org.ibisph.systemid.FileSystemID">
340                <constructor-arg ref="Common.Webapp.RootPath"/>
341                <constructor-arg value="xslt/html/user/status/StatusHTMLContentPage.xslt"/>
342        </bean>
343
344        <bean id="User.QuerySelectionList.XSLT.SystemID" class="org.ibisph.systemid.FileSystemID">
345                <constructor-arg ref="Common.Webapp.RootPath"/>
346                <constructor-arg value="xslt/html/user/queryselections/SelectionPage.xslt"/>
347        </bean>
348
349
350
351        <!--  V I E W S  -->
352        <bean id="User.HTMLContent.View" class="org.ibisph.xml.springmvc.XSLTXMLTransformationView">
353                <constructor-arg ref="User.HTMLContent.XSLT.SystemID"/>
354                <constructor-arg ref="Common.XSLT.Transformation"/>
355        </bean>
356
357        <bean id="User.Status.View" class="org.ibisph.xml.springmvc.XSLTXMLTransformationView">
358                <constructor-arg ref="User.Status.XSLT.SystemID"/>
359                <constructor-arg ref="Common.XSLT.Transformation"/>
360        </bean>
361
362        <bean id="User.QuerySelectionList.View" class="org.ibisph.xml.springmvc.XSLTXMLTransformationView">
363                <constructor-arg ref="User.QuerySelectionList.XSLT.SystemID"/>
364                <constructor-arg ref="Common.XSLT.Transformation"/>
365        </bean>
366</beans>
367
Note: See TracBrowser for help on using the repository browser.