<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html class="no-js ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]>    <html class="no-js ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]>    <html class="no-js ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
  <meta charset="utf-8">

  <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
       Remove this if you use the .htaccess -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>LoginService</title>

  <!-- Mobile viewport optimized: j.mp/bplateviewport -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- CSS: implied media="all" -->
  <link rel="stylesheet" href="css/style.css?v=2">
  <link rel="stylesheet" href="css/prettify.css">

  <!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects -->
  <script src="js/libs/modernizr-1.7.min.js"></script>

</head>

<body class="home">

  <div class="container">
    <header>
      <div id="header" class="column first last span-20">
        <div id="site-name" class="column span-18 append-1 prepend-1 first last"><a href="index.html">LoginService</a></div>
        <div id="primary" class="column span-18 append-1 prepend-1 first last">
          <ul class="navigation">
            <li id="nav-rest"><a href="rest.html">REST</a></li>
            <li id="nav-data"><a href="model.html">Data Model</a></li>
          </ul>
        </div>
        <div>
          <ul class="xbreadcrumbs" id="breadcrumbs">
            <li>
              <a href="index.html" class="home">Home</a> &gt;
            </li>
            <li>
              <a href="rest.html">REST</a> &gt;
              <ul>
                <li><a href="model.html">Data Model</a></li>
                <li><a href="rest.html">REST</a></li>
              </ul>
            </li>
            <li class="current">
              <a href="resource_LoginService.html">LoginService</a>
              <ul>
                <li><a href="resource_UtilServices.html">UtilServices</a></li>
                <li><a href="resource_UserService.html">UserService</a></li>
                <li><a href="resource_LoginService.html">LoginService</a></li>
                <li><a href="resource_RoleManagementService.html">RoleManagementService</a></li>
                <li><a href="resource_LdapGroupMappingService.html">LdapGroupMappingService</a></li>
                <li><a href="resource_PasswordService.html">PasswordService</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </header>
    <div id="main" class="column first last span-20">
      <h1>LoginService</h1>

      <p></p>
      <p>The following resources are part of this group:</p>
      <ul>
        <li><a href="#path__loginService_addAuthenticationKey.html">/loginService/addAuthenticationKey</a></li>
        <li><a href="#path__loginService_isLogged.html">/loginService/isLogged</a></li>
        <li><a href="#path__loginService_logIn.html">/loginService/logIn</a></li>
        <li><a href="#path__loginService_logout.html">/loginService/logout</a></li>
        <li><a href="#path__loginService_ping.html">/loginService/ping</a></li>
        <li><a href="#path__loginService_pingWithAutz.html">/loginService/pingWithAutz</a></li>
      </ul>
      <a name="path__loginService_addAuthenticationKey.html"></a>
      <h1>/loginService/addAuthenticationKey</h1>
      <p class="note">Mount Point: <a href="../redbackServices/loginService/addAuthenticationKey">/redbackServices/loginService/addAuthenticationKey</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <h3>Parameters</h3>
      <table>
        <tr>
          <th>name</th>
          <th>description</th>
          <th>type</th>
          <th>default</th>
        </tr>
        <tr>
          <td>providerKey</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
        <tr>
          <td>principal</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
        <tr>
          <td>purpose</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
        <tr>
          <td>expirationMinutes</td>
          <td>
            (no documentation provided)
          </td>
          <td>query</td>
          <td></td>
        </tr>
      </table>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__loginService_isLogged.html"></a>
      <h1>/loginService/isLogged</h1>
      <p class="note">Mount Point: <a href="../redbackServices/loginService/isLogged">/redbackServices/loginService/isLogged</a></p>
      <p class="note">Available Since: 1.4</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4</p>
      <p>
            simply check if current user has an http session opened with authz passed and return user data
          </p>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_user.html">user</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__loginService_logIn.html"></a>
      <h1>/loginService/logIn</h1>
      <p class="note">Mount Point: <a href="../redbackServices/loginService/logIn">/redbackServices/loginService/logIn</a></p>
      <a name="POST"></a>
      <h2>POST</h2>
      <p>
            check username/password and create a http session.
So no more need of reuse username/password for all ajaxRequest
          </p>
      <h3>Request Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_loginRequest.html">loginRequest</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>*/*<br/>application/xml<br/></td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td><a href="el_ns0_user.html">user</a></td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__loginService_logout.html"></a>
      <h1>/loginService/logout</h1>
      <p class="note">Mount Point: <a href="../redbackServices/loginService/logout">/redbackServices/loginService/logout</a></p>
      <p class="note">Available Since: 1.4</p>
      <a name="GET"></a>
      <h2>GET</h2>
      <p class="note">Available Since: 1.4</p>
      <p>
            clear user http session
          </p>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__loginService_ping.html"></a>
      <h1>/loginService/ping</h1>
      <p class="note">Mount Point: <a href="../redbackServices/loginService/ping">/redbackServices/loginService/ping</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>
      <a name="path__loginService_pingWithAutz.html"></a>
      <h1>/loginService/pingWithAutz</h1>
      <p class="note">Mount Point: <a href="../redbackServices/loginService/pingWithAutz">/redbackServices/loginService/pingWithAutz</a></p>
      <a name="GET"></a>
      <h2>GET</h2>
      <h3>Response Body</h3>
      <table>
        <tr>
          <td align="right">element:</td>
          <td>(custom)</td>
        </tr>
        <tr>
          <td align="right">media types:</td>
          <td>application/xml<br/>text/plain<br/>application/json</td>
        </tr>
      </table>
      <p>(no documentation provided)</p>

      <div class="clear" />
    </div>
    <footer>
      <div id="footer">
        Generated by <a href="http://enunciate.codehaus.org">Enunciate</a>.
      </div>
    </footer>
  </div> <!--! end of #container -->

  <!-- JavaScript at the bottom for fast page loading -->

  <!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary -->
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
  <script>window.jQuery || document.write("<script src='js/libs/jquery-1.5.1.min.js'>\x3C/script>")</script>

  <!--manage the navigation menu-->
  <script src="js/libs/xbreadcrumbs.js"></script>
  <script>
    $(function() {
      $('#breadcrumbs').xBreadcrumbs();
    });
  </script>


  <!-- prettify code blocks. see http://code.google.com/p/google-code-prettify/ -->
  <script src="js/libs/prettify/prettify.js"></script>
  <script>
    $(function() {
      prettyPrint();
    });
  </script>

  <!--[if lt IE 7 ]>
    <script src="js/libs/dd_belatedpng.js"></script>
    <script>DD_belatedPNG.fix("img, .png_bg"); // Fix any <img> or .png_bg bg-images. Also, please read goo.gl/mZiyb </script>
  <![endif]-->

</body>
</html>