View Javadoc
1   /*
2    * Copyright (c) 2002-2014, Mairie de Paris
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions
7    * are met:
8    *
9    *  1. Redistributions of source code must retain the above copyright notice
10   *     and the following disclaimer.
11   *
12   *  2. Redistributions in binary form must reproduce the above copyright notice
13   *     and the following disclaimer in the documentation and/or other materials
14   *     provided with the distribution.
15   *
16   *  3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
17   *     contributors may be used to endorse or promote products derived from
18   *     this software without specific prior written permission.
19   *
20   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
24   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30   * POSSIBILITY OF SUCH DAMAGE.
31   *
32   * License 1.0
33   */
34  package fr.paris.lutece.plugins.mylutece.modules.oauth.authentication;
35  
36  import fr.paris.lutece.portal.service.spring.SpringContextService;
37  
38  import org.apache.http.HttpResponse;
39  
40  
41  /**
42   * This class provides method to try to retrieve user infos.
43   */
44  public final class OAuthCredentialsRetrieverUtils
45  {
46      /**
47       * Private contructor
48       */
49      private OAuthCredentialsRetrieverUtils(  )
50      {
51          // nothing
52      }
53  
54      /**
55       * Finds the user info from the response.
56       * <br>
57       * Declare your parser in mylutece-oauth_context.xml like this :
58       * <pre>
59       * &lt;bean id="mylutece-oauth.credRetriever-XML" class="fr.paris.lutece.plugins.mylutece.modules.oauth.authentication.XMLCredentialRetriever"&gt;
60       *         &lt;property name="format" value="xml" /&gt;
61       * &lt;/bean&gt;
62       * </pre>
63       * @param httpResponse http response
64       * @param user the user to fill
65       * @param strFormat the format
66       * @see IOAuthCredentialsRetriever
67       */
68      public static void doRetrieveUserInfo( HttpResponse httpResponse, OAuthUser user, String strFormat )
69      {
70          for ( IOAuthCredentialsRetriever retriever : SpringContextService.getBeansOfType( 
71                  IOAuthCredentialsRetriever.class ) )
72          {
73              if ( strFormat.equals( retriever.getFormat(  ) ) )
74              {
75                  retriever.doRetrieveUserInfo( httpResponse, user );
76              }
77          }
78      }
79  }