Changeset 20093 in main


Ignore:
Timestamp:
03/24/20 18:54:08 (11 days ago)
Author:
GarthBraithwaite_STG
Message:

nm epht - initial whack.

Location:
adopters/nm-epht/trunk/src/main/webapps/epht-view
Files:
13 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • adopters/nm-epht/trunk/src/main/webapps/epht-view/WEB-INF/config/SiteSpecific.properties

    r13027 r20093  
    55#------------------------------------------------------------------------------
    66
    7 # working with nm data
    8 #queryBaseQueryApplicationRequestPath.string =http://10.135.2.142/cgi-bin/hi_iq_func.exe
    9 #queryBaseQueryApplicationRequestPath.string =http://10.135.2.255/cgi-bin/hi_iq_func21.exe
    10 queryBaseQueryApplicationRequestPath.string =http://10.135.2.255/cgi-bin/hi_iq_func22.exe
    11 
    12 #--- XML base file path used by all "Path" type bean configurations.  This provides
    13 #    a mechanism to easily locate files to a directory outside of the webapp.  The
    14 #    default location is the relative "xml" within the webapp. 
    15 commonXMLBasePath.string           =../epht-view-content/xml
    16 commonRestrictedXMLBasePath.string =../epht-view-content/WEB-INF/xml
    17 commonMenuXMLPath.string           =/menu
    18 
    19 #---viewGetFileBaseFilePath
    20 #       Base file path used to retrieve file contents like PDF and XML files
    21 #       that reside outside of the webapp -or- within a servlet mapping.
    22 viewGetFileBaseFilePath.string =../epht-view-content
    23 
    24 
     7queryIBISQRequestPath.string =http://10.135.2.255/cgi-bin/hi_iq_func22.exe
    258queryModuleSelectionModelMap.pathPrefixToRemove =/dataportal/query/selection
    269
     10commonContentBasePath.string =../epht-view-content/
    2711
    28 #--- Base server with app context request URL to be used by the app when creating
    29 #    outside links back to the app.  This value needs to be the server name AND
    30 #    application context.  An example of where this value is used is for the self
    31 #    user registration verification process email link.  The user is sent a
    32 #    verification email that has a URL that the user clicks to verify and activate
    33 #    their account.  This is needed because the server only knows its IP address
    34 #    - it has no idea what DNS entry is needed to get to itself.  For the same
    35 #    reason the outside application context path is also needed (upstream proxy
    36 #    can be one value while the app knows its context path differently). 
    37 #    This value is then used internally by the code to build the actual request
    38 #    URL.  This value defaults to http://localhost/ibisph-view so if any
    39 #    outside requests WILL fail if this value is not overridden.  Note that there
    40 #    is NO trailing slash "/".
    41 commonWebAppRemoteURLPrefix.string =https://nmtracking.org
    42 
    43 #Admin App Configuration
    44 #publishIndicatorController.baseRequestURL =http://10.135.2.255:8080/ibisph-admin/indicator
    45 #publishOrgUnitsController.baseRequestURL =http://10.135.2.255:8080/ibisph-admin
    46 #publishIndicatorController.baseIndicatorViewRequestURL =http://10.135.2.255:8080/ibisph-admin/indicator/view
    47 #securityAdminAppIPAddress.string =10.135
    48 
     12commonWebAppBaseRequestPath.string =https://nmtracking.org/
    4913
    5014#--- self registered user email overrides
    5115userEmailVerificationService.mailMessageFrom =admin@nmtracking.org
    52 userEmailVerificationService.mailSubject     =NM EPHT - Self Registed MyEPHT Account Verification
     16userEmailVerificationService.mailSubject     =NM EPHT - Self Registed MySelections Account Verification
    5317userEmailPasswordService.mailMessageFrom =admin@nmtracking.org
    54 userEmailPasswordService.mailSubject     =NM EPHT - Your MyEPHT Account Password
     18userEmailPasswordService.mailSubject     =NM EPHT - Your MySelections Account Password
    5519
    5620#----------------------------------- END OF FILE -----------------------------
  • adopters/nm-epht/trunk/src/main/webapps/epht-view/WEB-INF/config/spring/SiteSpecific-Security.xml

    r13610 r20093  
    77>
    88
     9        <!-- ============ F I L T E R   P R O X Y ======================= -->
     10        <bean id="securityFilterChainProxy" class="org.springframework.security.web.FilterChainProxy">
     11                <description>
     12                        Entry point via the web.xml filter entry.  This proxy filter that
     13                        lists the core security chains which map URL(s) to the security
     14                        processing sequences.  Note that the chain ordering is important
     15                        as the first URL path match dictates which processing is used.
     16                </description>
     17                <constructor-arg>
     18                        <list>
     19                                <ref bean="securitySecureQueryPostSubmitFilterChain"/>
     20                                <ref bean="securitySecureQueryFilterChain"/>
     21                                <ref bean="securityAuthenticationFilterChain"/>
     22                                <ref bean="securityAdminPublishFilterChain"/>
     23
     24                                <bean class="org.ibisph.web.filter.AntPatternSecurityFilterChain">
     25                                        <description>Force HTTPS for everything.</description>
     26                                        <constructor-arg>
     27                                                <list>
     28                                                        <value>/**</value>
     29                                                </list>
     30                                        </constructor-arg>
     31                                        <constructor-arg>
     32                                                <list>
     33                                                        <ref bean="httpsChannelProcessingFilter"/>
     34                                                </list>
     35                                        </constructor-arg>
     36                                </bean>
     37                        </list>
     38                </constructor-arg>
     39        </bean>
     40
     41        <!-- =========================================== F I L T E R   C H A I N S -->
     42        <bean id="securityAuthenticationFilterChain" class="org.ibisph.web.filter.AntPatternSecurityFilterChain">
     43                <description>
     44                        Config for secure selections and self registered user related requests.
     45                </description>
     46                <constructor-arg>
     47                        <list>
     48                                <value>/user/authenticate</value>
     49                                <value>/user/logout</value>
     50
     51                                <value>/user/Profile.html</value>
     52                                <value>/user/profile/save</value>
     53                                <value>/user/profile/delete</value>
     54
     55                                <value>/user/Selections.html</value>
     56
     57                                <value>/query/definition/builder/**</value>
     58                                <value>/query/definition/List.html</value>
     59                                <value>/query/criteria/List.html</value>
     60                                <value>/query/definition/from/builder</value>
     61                                <value>/query/definition/from/result</value>
     62                                <value>/query/definition/save</value>
     63                                <value>/query/definition/delete/**</value>
     64
     65                                <value>/secure/**</value>
     66                        </list>
     67                </constructor-arg>
     68                <constructor-arg>
     69                        <list>
     70                                <ref bean="httpsChannelProcessingFilter"/>
     71                                <ref bean="securitySecurityContextPersistenceFilter"/>
     72                                <ref bean="securityLogoutFilter"/>
     73                                <ref bean="securityAuthenticationHeaderProcessingFilter"/>
     74                                <ref bean="securityAuthenticationPageProcessingFilter"/>
     75                                <ref bean="securityExceptionTranslationFilter"/>
     76                                <ref bean="securityAuthenticationAccessInterceptorFilter"/>
     77                        </list>
     78                </constructor-arg>
     79        </bean>
     80
     81
     82        <bean id="securitySecureQueryResultFilterChain" class="org.ibisph.web.filter.AntPatternSecurityFilterChain">
     83                <description>
     84                        Specific config for any "/secure/query/result/**" type request.
     85                        Note that protected group by dimension values will need to be
     86                        handled by a post model processing service/model map as the
     87                        voter can not handle this due to the IBIS-Q XML not being avail
     88                        at this point of the request.  A post filter does not work as 
     89                        the XSLT will have already processed the XML that might contain
     90                        unauthorized dimension values.
     91                </description>
     92                <constructor-arg>
     93                        <list>
     94                                <value>/secure/query/result/**</value>
     95                        </list>
     96                </constructor-arg>
     97                <constructor-arg>
     98                        <list>
     99                                <ref bean="httpsChannelProcessingFilter"/>
     100                                <ref bean="securitySecurityContextPersistenceFilter"/>
     101                                <ref bean="securityLogoutFilter"/>
     102                                <ref bean="securityAuthenticationHeaderProcessingFilter"/>
     103                                <ref bean="securityAuthenticationPageProcessingFilter"/>
     104                                <ref bean="securityExceptionTranslationFilter"/>
     105                                <ref bean="securitySecureQueryPostSubmitAccessInterceptorFilter"/>
     106                        </list>
     107                </constructor-arg>
     108        </bean>
     109
     110        <bean id="securitySecureQueryFilterChain" class="org.ibisph.web.filter.AntPatternSecurityFilterChain">
     111                <constructor-arg>
     112                        <list>
     113                                <value>/secure/query/**</value>
     114                        </list>
     115                </constructor-arg>
     116                <constructor-arg>
     117                        <list>
     118                                <ref bean="httpsChannelProcessingFilter"/>
     119                                <ref bean="securitySecurityContextPersistenceFilter"/>
     120                                <ref bean="securityLogoutFilter"/>
     121                                <ref bean="securityAuthenticationHeaderProcessingFilter"/>
     122                                <ref bean="securityAuthenticationPageProcessingFilter"/>
     123                                <ref bean="securityExceptionTranslationFilter"/>
     124                                <ref bean="securitySecureQueryAccessInterceptorFilter"/>
     125                        </list>
     126                </constructor-arg>
     127        </bean>
     128       
     129       
     130        <bean id="httpsChannelMetadataSource" class="org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource">
     131                <constructor-arg>
     132                        <map>
     133                                <entry>
     134                                        <key><bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
     135                                                <constructor-arg value="/**"/>
     136                                        </bean></key>
     137                                        <ref bean="httpsRequiresSecureSecurityConfigList"/>
     138                                </entry>
     139                        </map>
     140                </constructor-arg>
     141        </bean>
     142        <!--  END ==================================================  HTTPS force for all -->
     143
     144       
     145
    9146        <bean id="securityAuthenticationProviderList" class="java.util.ArrayList">
    10147                <description>
     
    23160                </constructor-arg>
    24161        </bean>
     162
    25163
    26164        <bean id="securityDBAuthenticationDAOFactory" class="org.ibisph.databean.dao.JDBCTemplateDAOFactory">
     
    38176        </bean>
    39177
    40         <bean id="securityAuthenticationPageProcessingFilter" class="org.ibisph.user.springsecurity.LogUserAuthenticationProcessingFilter">
    41                 <property name="filterProcessesUrl"       value="/user/authenticate"/>
    42                 <property name="usernameParameter"        value="username"/>
    43                 <property name="passwordParameter"        value="password"/>
    44                 <property name="authenticationFailureHandler" ref="securityAuthenticationFailedAuthenticationHandler"/>
    45 
    46                 <!-- if using DB authentication, might want to use the DB UserLogService: -->
    47                 <property name="userLogService"           ref="securityDBAuthenticationUserLogService"/>
    48                
    49                 <!--    this user log service logs only to ibisph-view.log and stdout   
    50                 <property name="userLogService"           ref="securityAuthenticationUserLogService"/>
    51                 -->
    52                
    53                 <property name="currentUserService"       ref="commonCurrentUserService"/>
    54                 <property name="authenticationManager"    ref="securityAuthenticationProviderManager"/>
    55         </bean>
    56                
     178
    57179        <bean id="securityExplicitSecureQueryMetadataSource" class="org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource">
    58180                <description>Authorization Only definitions for secure query.</description>
    59181                <constructor-arg>
    60                         <map>           
    61                                 <entry>
    62                                         <key><bean class="org.springframework.security.web.util.AntPathRequestMatcher">
     182                        <map>
     183                                <entry>
     184                                        <key><bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
    63185                                                <constructor-arg value="/secure/query/*/birth/**"/>
    64186                                        </bean></key>
     
    71193
    72194                                <entry>
    73                                         <key><bean class="org.springframework.security.web.util.AntPathRequestMatcher">
     195                                        <key><bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
    74196                                                <constructor-arg value="/secure/query/*/mort/**"/>
    75197                                        </bean></key>
     
    82204
    83205                                <entry>
    84                                         <key><bean class="org.springframework.security.web.util.AntPathRequestMatcher">
     206                                        <key><bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
    85207                                                <constructor-arg value="/secure/query/*/infmort/**"/>
    86208                                        </bean></key>
     
    92214                                </entry>
    93215
    94                                 <entry> <!-- only secure EPHT query as of 4-13-2017 -->
    95                                         <key><bean class="org.springframework.security.web.util.AntPathRequestMatcher">
    96                                                 <constructor-arg value="/secure/query/*/cancer/**"/>
    97                                         </bean></key>
    98                                         <list>
    99                                                 <bean class="org.springframework.security.access.SecurityConfig">
    100                                                         <constructor-arg value="query.epht"/>
    101                                                 </bean>
    102                                         </list>
    103                                 </entry>
    104 
    105                                 <entry>
    106                                         <key><bean class="org.springframework.security.web.util.AntPathRequestMatcher">
     216                                <entry>
     217                                        <key><bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
     218                                                <constructor-arg value="/secure/query/*/hidd/**"/>
     219                                        </bean></key>
     220                                        <list>
     221                                                <bean class="org.springframework.security.access.SecurityConfig">
     222                                                        <constructor-arg value="sqhidd"/>
     223                                                </bean>
     224                                        </list>
     225                                </entry>
     226
     227                                <entry>
     228                                        <key><bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
     229                                                <constructor-arg value="/secure/query/*/cancer_EPHT/**"/>
     230                                        </bean></key>
     231                                        <list>
     232                                                <bean class="org.springframework.security.access.SecurityConfig">
     233                                                        <constructor-arg value="query.EPHT"/>
     234                                                </bean>
     235                                        </list>
     236                                </entry>
     237
     238                                <entry>
     239                                        <key><bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
    107240                                                <constructor-arg value="/secure/query/*/tribalbirth/**"/>
    108241                                        </bean></key>
     
    115248
    116249                                <entry>
    117                                         <key><bean class="org.springframework.security.web.util.AntPathRequestMatcher">
     250                                        <key><bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
    118251                                                <constructor-arg value="/secure/query/*/tribalmort/**"/>
    119252                                        </bean></key>
     
    126259                               
    127260                                <entry>
    128                                         <key><bean class="org.springframework.security.web.util.AntPathRequestMatcher">
     261                                        <key><bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
    129262                                                <constructor-arg value="/secure/query/*/tribalinfmort/**"/>
    130263                                        </bean></key>
     
    137270                               
    138271                                <entry>
    139                                         <key><bean class="org.springframework.security.web.util.AntPathRequestMatcher">
     272                                        <key><bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
    140273                                                <constructor-arg value="/secure/query/*/tribalpop/**"/>
    141274                                        </bean></key>
     
    150283        </bean>
    151284
    152         <bean id="securityPublishRequestAllowRequestIPAddressFilter" class="org.ibisph.web.filter.CheckAllowedRequesterIPAddressFilter">
    153                 <description>
    154                         Filter that enforces that the request is being made from a specific IP
    155                         address or domain segment address.  This is useful to block non admin
    156                         based client the ability to send a publish request to the view app.
    157                         This filter verifies that the request is coming from the Admin
    158                         application server's address.  If not, then the HTTP Unauthorized
    159                         Access (401) is returned by the filter and the publish request
    160                         does not go through.
    161 
    162                         IMPORTANT NOTE: For this to work ALL publish type requests need
    163                         to have a URL mapping that is caught by this filter (see filter
    164                         mapping).  The ACEGI security can also be deployed but as of
    165                         1/2006, this is the only security need, so it done as a simple
    166                         filter without having to configure and deal with ACEGI.  Tomcat
    167                         also provides a similar filter.
    168                 </description>
    169                 <property name="matchPartialAddress" value="#{securityAdminAppMatchPartialIPAddress.boolean}"/>
    170                 <property name="IPAddressList">
    171                         <description>
    172                                 IP address segment (left to right significance) which is used to
    173                                 identify/allow publishing requests to come from.  Localhost should
    174                                 be "127.0.0.1", If null/blank then any machine is allowed to make
    175                                 a publishing request.  A value of "254.67" means that any address
    176                                 that starts with 254.67 is valid (e.g. 254.67.*.* or 254.67.255.255
    177                                 in networking terms).
    178                         </description>
    179                         <list>
    180                                 <value>10.135.2.255</value>
    181                                 <value>#{securityAdminAppIPAddress.string}</value>
    182                         </list>
    183                 </property>
    184         </bean>
    185 
    186285</beans>
    187 
  • adopters/nm-epht/trunk/src/main/webapps/epht-view/WEB-INF/config/spring/SiteSpecific.xml

    r13609 r20093  
    66        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"
    77>
    8         <!-- See core ss.xml for info about this file. -->
     8        <!--
     9                This file has 3 functions:
     10                1) Specify/load the application's spring bean definition files.
     11                2) Provide the dispatcher servlet URL to controller mappings.
     12                3) Override any spring bean definitions as per adopter's specific needs.
     13                   Note that the properties file should be configured in this file IF
     14                   they are needed/used.
     15        -->
     16
     17        <!--
     18                SPRING APPLICATION CONTENT DEFINITION FILES / SPRING BEAN IMPORTS
     19                Specifies the Spring application context definition files which are
     20                responsible for creating the application's objects.  To keep these
     21                definitions more maintainable the bean definitions are stored in their
     22                own file (beans are grouped by functionality).  There are two available
     23                mechanisms to load these files:
     24                1) web.xml - can specify a list of bean files to load.  Note that this
     25                   mechanism is the same - the difference is that it only specifies
     26                   this file.
     27                2) This file can be used with the spring bean "import" mechanism.  This
     28                   mechanism works the same way the XSLT import works with the last
     29                   import taking precedence (which for imports is typically not a problem
     30                   as they should be independent).  However, the 2nd part of this file
     31                   allows for an adopter to override any bean definition OR the adopter
     32                   can put all their overrides in a separate file and import that file
     33                   last etc.
     34
     35                IMPORTANT IMPORT NOTES:
     36                Some beans have dependencies on other beans so inclusion of 1 file
     37                may result in the need for additional file(s).  The request dispatcher
     38                URL to controller mappings require that all controller objects be
     39                defined.  In either case if a bean references another bean and that
     40                bean/object is not defined the application will not start (you will
     41                see an error in the output log about bean definition missing/not found).
     42               
     43                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     44                !!! IMPORTANT - SECURITY CONFIGURATION !!!
     45                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     46                When making security config changes consult ALL the notes and comments
     47                within the security files and the admin webapp's security_notes.txt
     48                file.  At some point someone will document this but for now these
     49                comments should provide enough help for a java web developer to be
     50                able to connect the dots.
     51
     52                If doing secure URLs at least two security definitions need to be
     53                specified: the general (security.xml) and the specific security
     54                configuration (security-xxx.xml) which supplements.
     55        -->
    956        <import resource="common.xml"/>
    1057        <import resource="filter.xml"/>
     
    1360        <import resource="security-db_authentication.xml"/>
    1461        <import resource="security-xml_authentication.xml"/>
    15         <import resource="SiteSpecific-Security.xml"/>
     62        <import resource="https.xml"/>
    1663
    1764        <import resource="indicator.xml"/>
     
    1966        <import resource="query-definition.xml"/>
    2067        <import resource="community.xml"/>
     68        <import resource="topic.xml"/>
     69        <import resource="report.xml"/>
    2170        <import resource="secure.xml"/>
    2271        <import resource="user.xml"/>
    2372
    24         <import resource="chart-agileblox.xml"/>
    2573        <import resource="view.xml"/>
    2674
    27         <import resource="IBISPHViewContentPath.xml"/>
     75        <import resource="epht.xml"/>
     76
     77        <import resource="SiteSpecific-security.xml"/>
    2878
    2979
    3080        <bean id="siteSpecificDispatcherServletURLMap" class="java.util.HashMap">
     81                <description>
     82                        Defines the mapping of URL patterns to the appropriate IBIS-PH
     83                        Controller.  The definitions are defined here and referenced in the
     84                        dispacther_servlet.xml file because the ds.xml load occurs after
     85                        this bean file is processed which would require an adopter to have
     86                        to maintain and track the d_s.xml file.  Keeping them in this file
     87                        also is the right place as this file contains the bean imports.
     88                       
     89                        IMPORTANT IMPORT NOTE:
     90                        The request URLs to controller mapping MUST match the specified
     91                        controller.  Otherwise the application will not start and the log
     92                        will show an undefined bean error in the log.  Make sure that the
     93                        imports match the needed controller.
     94
     95                        For example if secure query is wanted then the secure.xml spring bean
     96                        controller definition file would need to imported.  The "secure" type
     97                        requests would then need to be mapped to the respective controller.
     98
     99                        Note the first part of the controller name corresponds with the
     100                        Spring bean definition file that includes that controller's
     101                        definition (this is the case with all IBIS-PH Spring bean defs -
     102                        they all have a prefix that is associated with the bean XML file.
     103
     104                        ORDERING: The best practice is to be order most specific to least.
     105                </description>
    31106                <constructor-arg>
    32107                        <map>
    33108                                <!-- D E F A U L T   H T M L   C O N T E N T -->
    34109                                <entry key="/**/*.html" value-ref="viewHTMLContentConventionController"/>
     110
     111                                <!-- Note these will only get hit for defined web.xml blanket
     112                                        mappings so requests like indicator/ or query/
     113                                        but NOT about/ or topic/ as these have no web.xml mapping.
     114                                -->
    35115                                <entry key="/*/"        value-ref="viewHTMLContentConventionController"/>
    36                                 <entry key="/*"         value-ref="viewHTMLContentConventionController"/>
    37116
    38117                                <!-- I N D I C A T O R  -->
    39                                 <entry key="/dataportal/indicator/index/Alphabetical.html"     value-ref="indicatorAlphabeticalIndexController"/>
    40                                 <entry key="/dataportal/indicator/index/Categorized.html"      value-ref="indicatorCategorizedIndexController"/>
    41 
    42                                 <entry key="/dataportal/indicator/view/*.html"                 value-ref="indicatorViewController"/>
    43                                 <entry key="/dataportal/indicator/view/classic/*.html"         value-ref="indicatorViewClassicController"/>
    44                                 <entry key="/dataportal/indicator/important_facts/*.html"      value-ref="indicatorImportantFactsController"/>
    45                                 <entry key="/dataportal/indicator/available_services/*.html"   value-ref="indicatorAvailableServicesController"/>
    46                                 <entry key="/dataportal/indicator/related/*/*.html"            value-ref="indicatorRelatedIndicatorsController"/>
    47                                 <entry key="/dataportal/indicator/other_resources/*.html"      value-ref="indicatorOtherResourcesController"/>
    48                                 <entry key="/dataportal/indicator/complete_profile/*.html"     value-ref="indicatorCompleteProfileController"/>
    49                                 <entry key="/dataportal/indicator/view_numbers/*.html"         value-ref="indicatorViewNumbersController"/>
    50 
    51                                 <entry key="/indicator/chart/**"                               value-ref="IBISPHViewContentIndicatorChartGraphicController"/>
    52                                 <entry key="/indicator/graph/**"                               value-ref="IBISPHViewContentIndicatorChartGraphicController"/>
     118                                <entry key="/indicator/index/Alphabetical.html"  value-ref="indicatorAlphabeticalIndexController"/>
     119                                <entry key="/indicator/index/DataSource.html"    value-ref="indicatorDataSourceIndexController"/>
     120                                <entry key="/indicator/index/Organization.html"  value-ref="indicatorOrgUnitIndexController"/>
     121                                <entry key="/indicator/index/Set.html"           value-ref="indicatorIndicatorSetIndexController"/>
     122                                <entry key="/indicator/index/Table.html"         value-ref="indicatorTableIndexController"/>
     123                                <entry key="/indicator/index/Categorized.html"   value-ref="indicatorCategorizedIndexController"/>
     124                                <entry key="/indicator/summary/*.html"       value-ref="indicatorSummaryViewController"/>
     125                                <entry key="/indicator/view/*.html"          value-ref="indicatorViewController"/>
     126                                <entry key="/indicator/facts/*.html"         value-ref="indicatorImportantFactsController"/>
     127                                <entry key="/indicator/services/*.html"      value-ref="indicatorServicesController"/>
     128                                <entry key="/indicator/related/*/*.html"     value-ref="indicatorRelatedIndicatorsController"/>
     129                                <entry key="/indicator/resources/*.html"     value-ref="indicatorResourcesController"/>
     130                                <entry key="/indicator/complete_profile/*.html" value-ref="indicatorCompleteViewController"/>
     131
     132                                <entry key="/indicator/view/*.json"          value-ref="indicatorViewJSONController"/>
     133                                <entry key="/indicator/*.json"               value-ref="indicatorJSONController"/>
     134
     135                                <entry key="/indicator/contentblocks/*.html" value-ref="indicatorContentBlocksController"/>
     136
     137                                <entry key="/indicator/preview/*.html"       value-ref="indicatorPreviewController"/>
     138                                <entry key="/indicator/view/preview/*.html"  value-ref="indicatorViewPreviewController"/>
     139
     140                                <!-- C O M M U N I T Y -->
     141                                <entry key="/community/indicators/**"       value-ref="communityIndicatorsReportController"/>
     142                                <entry key="/community/indicator/**"        value-ref="communityIndicatorReportController"/>
     143                                <entry key="/community/facts/**"            value-ref="communityFactsController"/>
     144
     145                                <!-- T O P I C -->
     146                                <entry key="/topic/**"                      value-ref="topicHTMLContentConventionController"/>
    53147
    54148                                <!-- Q U E R Y  -->
    55                                 <entry key="/dataportal/query/selection/**"             value-ref="querySelectionController"/>
    56                                 <entry key="/dataportal/query/configuration/**"         value-ref="queryConfigurationController"/>
    57                                 <entry key="/dataportal/query/builder/**"               value-ref="queryBuilderController"/>
    58                                 <entry key="/dataportal/query/submit/**/*.html"         value-ref="querySubmitController"/>
    59                                 <entry key="/dataportal/query/submit/**/*.xml"          value-ref="querySubmitAndRunToXMLController"/>
    60 
    61                                 <entry key="/dataportal/query/result/chart/**"          value-ref="queryChartGraphicController"/>
    62                                 <entry key="/dataportal/query/result/graph/**"          value-ref="queryChartGraphicController"/>
    63 
    64                                 <entry key="/dataportal/query/result/**/*.html"         value-ref="queryResultController"/>
    65                                 <entry key="/dataportal/query/result/classic/**/*.html" value-ref="queryResultClassicController"/>
    66                                 <entry key="/dataportal/query/result/**/*.xls"          value-ref="queryResultSimpleController"/>       <!-- put here so can plug in Excel specifici controller in the future. -->
    67                                 <entry key="/dataportal/query/result/**/*.xml"          value-ref="queryIBISQResultController"/>       
    68 
    69 <!-- probably needs to go away... -->
    70 <entry key="/dataportal/query/builder/form/**"          value-ref="queryBuilderFormController"/>
     149                                <entry key="/query/selection/**"             value-ref="querySelectionController"/>
     150                                <entry key="/query/configuration/**"         value-ref="queryConfigurationController"/>
     151                                <entry key="/query/builder/**"               value-ref="queryBuilderController"/>
     152                                <entry key="/query/submit/**/*.html"         value-ref="querySubmitController"/>
     153                                <entry key="/query/submit/**/*.xml"          value-ref="querySubmitAndRunToXMLController"/>
     154                                <entry key="/query/result/**/*.html"         value-ref="queryResultController"/>
     155                                <entry key="/query/result/**/*.xls"          value-ref="queryResultController"/>        <!-- put here so can plug in Excel specifici controller in the future. -->
     156                                <entry key="/query/result/**/*.xml"          value-ref="queryIBISQResultController"/>   
    71157
    72158                                <!-- Q U E R Y   D E F I N I T I O N -->
     
    85171                                <entry key="/query/definition/delete/*"      value-ref="queryDefinitionDeleteController"/>
    86172
     173
    87174                                <!-- S E C U R E  -->
    88175                                <entry key="/secure"                                value-ref="secureSelectionController"/>
    89                                 <entry key="/secure/*.jsp"                          value-ref="secureHTTPTestController"/>
     176                                <entry key="/secure/test.jsp"                       value-ref="secureTestController"/>
    90177                                <entry key="/secure/selection/*.html"               value-ref="secureSelectionController"/>
    91178                                <entry key="/secure/query/selection/**"             value-ref="secureQuerySelectionController"/>
     
    94181                                <entry key="/secure/query/submit/**/*.xml"          value-ref="secureQuerySubmitAndRunToXMLController"/>
    95182                                <entry key="/secure/query/result/**/*.html"         value-ref="secureQueryResultController"/>
    96                                 <entry key="/secure/query/result/classic/**/*.html" value-ref="secureQueryResultClassicController"/>
    97                                 <entry key="/secure/query/result/**/*.xls"          value-ref="secureQueryResultSimpleController"/>
     183                                <entry key="/secure/query/result/**/*.xls"          value-ref="secureQueryResultController"/>
    98184                                <entry key="/secure/query/result/**/*.xml"          value-ref="secureQueryIBISQResultController"/>     
    99185                                <entry key="/secure/query/configuration/**"         value-ref="queryConfigurationController"/>
    100186
    101 <!-- probably needs to go away... -->
    102 <entry key="/secure/query/builder/form/**"          value-ref="secureQueryBuilderFormController"/>
    103187                                <entry key="/secure/query/definition/detail/*/*"    value-ref="secureQueryDefinitionDetailController"/>
    104188                                <entry key="/secure/query/definition/result/*/*"    value-ref="secureQueryDefinitionResultController"/>
     
    108192                                <entry key="/secure/query/definition/from/result"   value-ref="secureQueryDefinitionFromResultController"/>
    109193
    110                                 <!-- C O M M U N I T Y -->
    111                                 <entry key="/dataportal/community/snapshot/Builder.html"     value-ref="communitySnapshotBuilderController"/>
    112                                 <entry key="/dataportal/community/snapshot/report/**"        value-ref="communitySnapshotReportController"/>
    113 
    114                                 <!-- path: graphic/indicator view name/community name/community value.svg -->
    115                                 <entry key="/dataportal/community/highlight/graphic/**"      value-ref="communityHighlightChartGraphicController"/>
    116 
    117                                 <entry key="/dataportal/community/highlight/index/**"        value-ref="communityHighlightIndexController"/>
    118                                 <entry key="/dataportal/community/highlight/introduction/**" value-ref="communityHighlightIntroductionController"/>
    119                                 <entry key="/dataportal/community/highlight/profile/**"      value-ref="communityHighlightProfileController"/>
    120                                 <entry key="/dataportal/community/highlight/report/**"       value-ref="communityHighlightReportController"/>
    121                                 <entry key="/dataportal/community/highlight/**"              value-ref="communityHighlightSelectionController"/>
    122 
    123                                 <!-- M E T A D A T A   X M L   F I L E -->
    124                                 <entry key="/dataportal/metadata/Introduction.html" value-ref="viewHTMLContentConventionController"/>
    125                                 <entry key="/dataportal/metadata/Index.html" value-ref="viewHTMLContentConventionController"/>
    126                                 <entry key="/dataportal/metadata/*.html" value-ref="viewXMLAsHTMLController"/>
     194
     195
     196                                <!-- R E P O R T -->
     197                                <entry key="/report/*/*/*.html"                   value-ref="reportIndicatorViewController"/>
     198                                <entry key="/report/*/*.html"                     value-ref="reportHTMLContentController"/>
     199
    127200
    128201                                <!-- U S E R   P R O F I L E -->
     
    137210                                <entry key="/user/status"                   value-ref="userStatusController"/>
    138211                                <entry key="/user/access/email"             value-ref="userEmailAccessController"/>
    139 
    140 
     212<!--
     213                                <entry key="/user/Profile.html"             value-ref="userEditProfileController"/>
     214                                <entry key="/user/profile/save"             value-ref="userSaveProfileController"/>
     215                                <entry key="/user/profile/delete"           value-ref="userDeleteProfileController"/>
     216-->
     217
     218                                <!-- E P H T -->
     219                                <entry key="/dataportal/query/selection/**"       value-ref="ephtQuerySelectionController"/>
     220                                <entry key="/dataportal/query/builder/**"         value-ref="ephtQueryBuilderController"/>
     221                                <entry key="/dataportal/query/submit/**/*.html"   value-ref="ephtQuerySubmitController"/>
     222                                <entry key="/dataportal/query/result/**/*.html"   value-ref="ephtQueryResultController"/>
     223
     224       
    141225                                <!-- G E N E R I C   T R A S F O R M A T I O N -->
     226                                <!--
     227                                        This controller is needed for adhoc system reports to work. 
     228                                        At one point it was thought to not enable this controller as
     229                                        it could be a potential security risk because it would bypass
     230                                        the spring security mechanism.  However, this is NOT the case
     231                                        as the controller only can access xml files within its
     232                                        configuration limitation or via the xmlURL request parameter. 
     233                                        In either case if there were sensitive data in these files
     234                                        they should NEVER be placed in a non secured, public facing
     235                                        webapp/directory. 
     236
     237                                        To be safe, it is probably still best to remove this request
     238                                        from production deployements.  It should only be enabled for
     239                                        local query module development and testing environment where
     240                                        the QM developer wants to test their XML files.
     241                                -->
    142242                                <entry key="/view.html" value-ref="viewHTTPXMLXSLTRequestParameterController"/>
    143 
    144                                 <!-- R E D I R E C T S -->
    145                                 <entry key="/fire"  value-ref="siteSpecificFireController"/>
    146                                 <entry key="/water" value-ref="siteSpecificWaterController"/>
    147243
    148244                                <!-- F I L E   C O N T E N T   S T R E A M E R -->
    149245                                <entry key="/view/WEB-INF/**" value-ref="viewAccessDeniedController"/>
    150                                 <entry key="/view/ibis/**"    value-ref="IBISPHViewContentGetFileController"/>
    151246                                <entry key="/view/**"         value-ref="viewGetFileController"/>
    152247
     
    156251
    157252
     253        <!--
     254                ADOPTER BEAN DEFINITION OVERRIDES AND PROPERTY OVERRIDES
     255                This section provides the adopter a mechanism to override bean definitions
     256                and property values.  Theses bean definitions should be listed AFTER ALL
     257                imported bean files. 
     258        -->
     259
    158260        <bean id="siteSpecificPropertyOverrides" class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
     261                <description>
     262                        Defines optional special property file(s) that contain property
     263                        overrides.  These differ in that the beanID:propertyName is on the
     264                        left side with the right containing the value to be injected into
     265                        the bean.  Property files are only able to provide string and numeric
     266                        type data values/value overrides.  These property files are optional
     267                        and might not want to be/need to be used by an adopter to keep their
     268                        configuration files more concise and simpler - the property values
     269                        can simply be placed in this file.  Where property files are of
     270                        value is when being deployed to different servers where each server
     271                        has it's own file path, IBISQ url, JNDI name, etc.
     272
     273                        The locations define where these override files could be located.
     274                        If one exists in all directories then the last definition is the
     275                        value that eventually is used.  If the file does not exist the
     276                        ignore setting specifies to move on.  If false and a file is not
     277                        found then the app will not start. 
     278
     279                        For local development in MS-Windows put a ibisph-view.properties
     280                        property override file in your c:\users\your_username directory.
     281                        Only include those values needed to override/supplement your
     282                        current settings already specified.
     283
     284                        IMPORTANT NOTES: If you have the files located outside of the webapp
     285                        container you need to make sure that the file privs are setup
     286                        correctly.  The ${user.home} is a special environment value that
     287                        should work for Windows and Linux - again make sure of file privs.
     288
     289                        Property files can inject string/numeric property values into an
     290                        existing object/defined bean.  Beans files define objects and that
     291                        object's properties/dependent objects.
     292                </description>
    159293                <property name="ignoreResourceNotFound" value="true"/>
    160294                <property name="locations">
    161295                        <list>
    162296                                <value>WEB-INF/config/SiteSpecific.properties</value>
    163                                 <value>file:${user.home}/epht-view.properties</value>
    164                                 <value>file:${user.home}/ibisph-view_nm-epht.properties</value>
     297                                <value>file:../nmibis-view.properties</value>
     298                                <value>file:${user.home}/nmibis-view.properties</value>
    165299                        </list>
    166300                </property>
     
    174308
    175309
    176 <bean id="securityAuthenticationProviderList" class="java.util.ArrayList">
    177         <description>
    178                 Defines the types of provides to be used for authenticating a user.
    179                 This list can be 1:n with the first being tried then the next etc
    180                 until successful/all providers have been tried.
    181 
    182                 Note that you MUST have the appropriate/associated spring bean xml
    183                 file included/imported to be able to use the selected provider.
    184         </description>
    185         <constructor-arg>
    186                 <list>
    187                         <ref bean="securityDBAuthenticationProvider"/>
    188                         <ref bean="securityXMLAuthenticationProvider"/>
    189                 </list>
    190         </constructor-arg>
    191 </bean>
    192 
    193 <!-- smtp mail mods -->
     310        <!-- smtp mail mods -->
    194311        <bean id="userEmailVerificationService" class="org.ibisph.user.service.EmailAccountAccess">
    195312                <property name="javaMailSender"  ref="userMailSender"/>
    196                 <property name="mailMessageFrom" value="nmtrakcing@nmtracking.org"/>
    197                 <property name="mailSubject"     value="NM Tracking Verification"/>
     313                <property name="mailMessageFrom" value="NM.Ibis@state.nm.us"/>
     314                <property name="mailSubject"     value="NM-IBIS Verification"/>
    198315                <property name="mailMessageSearchReplaceSignature" value="[VerificationURLSearchSignature]"/>
    199316                <property name="mailMessageHTML" value="#{userVerificationEmailMessage.string}"/>
    200317        </bean>
     318
    201319        <bean id="userEmailPasswordService" class="org.ibisph.user.service.EmailAccountAccess">
    202320                <property name="javaMailSender"  ref="userMailSender"/>
    203                 <property name="mailMessageFrom" value="nmtrakcing@nmtracking.org"/>
    204                 <property name="mailSubject"     value="NM Tracking Reset"/>
     321                <property name="mailMessageFrom" value="NM.Ibis@state.nm.us"/>
     322                <property name="mailSubject"     value="NM-IBIS Reset"/>
    205323                <property name="mailMessageSearchReplaceSignature" value="[Password_SearchReplaceSignature]"/>
    206324                <property name="mailMessageHTML" value="#{userSendPasswordEmailMessage.string}"/>
    207325        </bean>
    208326
    209 
    210 
    211 
    212         <!-- REDIRECT CONTROLLER EXAMPLE:
    213                 This can be used when you want to have a simple URL to share that maps to
    214                 a more complex request.  To make this work three things are needed:
    215                 1) web.xml has to map the request to the request dispatcher servlet.
    216                 2) the request dispatcher needs to have a URL to controller mapping.
    217                 3) the v3 controller definition which is provided below:
    218         <bean id="viewStaticWaterController" class="org.ibisph.web.springmvc.ModelMapAndViewController">
    219                 <property name="view">
    220                         <bean class="org.ibisph.web.springmvc.SimpleClientRedirectionView">
    221                                 <property name="redirectionAddress" value="/environment/water/Introduction.html"/>
    222                                 <property name="prependWebappContextToRedirectionAddress" value="true"/>
    223                         </bean>
    224                 </property>
    225         </bean>
    226 
    227         NOTES:
    228                 Aonther approach would be to simply create another hard coded controller
    229                 that handles the request.  The redirect is preferred because the user can
    230                 actually see and bookmark the "real" request URL.  This lessens the
    231                 confusion of how do I get back to this page and hey this page is the same
    232                 as that page - what's the diff?
    233 
    234                 *** When v3 the modelMap property will not be needed.  Also, at some future
    235                 point could create a generic controller to do this but web.xml and the
    236                 requset to controller mapping would still be needed.
    237         -->
    238         <bean id="siteSpecificWaterController" class="org.ibisph.web.springmvc.ModelMapAndViewController">
    239                 <property name="modelMap"><map/></property>
    240                 <property name="view">
    241                         <bean class="org.ibisph.web.springmvc.SimpleClientRedirectionView">
    242                                 <property name="redirectionAddress" value="/environment/water/Introduction.html"/>
    243                                 <property name="prependWebappContextToRedirectionAddress" value="true"/>
    244                         </bean>
    245                 </property>
    246         </bean>
    247         <bean id="siteSpecificFireController" class="org.ibisph.web.springmvc.ModelMapAndViewController">
    248                 <property name="modelMap"><map/></property>
    249                 <property name="view">
    250                         <bean class="org.ibisph.web.springmvc.SimpleClientRedirectionView">
    251                                 <property name="redirectionAddress" value="/environment/air/FireAndSmoke.html"/>
    252                                 <property name="prependWebappContextToRedirectionAddress" value="true"/>
    253                         </bean>
    254                 </property>
    255         </bean>
    256 
    257327</beans>
     328
Note: See TracChangeset for help on using the changeset viewer.