<servlet-name>RemoteUserAuthHandler</servlet-name>
<url-pattern>/Authn/RemoteUser</url-pattern>
</servlet-mapping>
+
+ <!-- Servlet for doing Username/Password authentication -->
+ <servlet>
+ <servlet-name>UsernamePasswordAuthHandler</servlet-name>
+ <servlet-class>edu.internet2.middleware.shibboleth.idp.authn.provider.UsernamePasswordAuthenticationServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>UsernamePasswordAuthHandler</servlet-name>
+ <url-pattern>/Authn/UserPassword</url-pattern>
+ </servlet-mapping>
<security-constraint>
<display-name>Shibboleth IdP</display-name>
<web-resource-collection>
- <web-resource-name>remote user authentication</web-resource-name>
+ <web-resource-name>user authentication</web-resource-name>
<url-pattern>/Authn/RemoteUser</url-pattern>
+ <url-pattern>/Authn/UserPassword</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<role-name>*</role-name>
</auth-constraint>
<user-data-constraint>
- <transport-guarantee>INTEGRAL</transport-guarantee>
+ <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<AuthenticationHandler xsi:type="RemoteUser">
<AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</AuthenticationMethod>
</AuthenticationHandler>
+
+ <AuthenticationHandler xsi:type="UsernamePassword"
+ jaasConfigurationLocation="file://$IDP_HOME/conf/login.confg">
+ <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthenticationMethod>
+ </AuthenticationHandler>
</ProfileHandlerGroup>
\ No newline at end of file
--- /dev/null
+ShibUserPassAuth {
+ edu.vt.middleware.ldap.jaas.LdapLoginModule required
+ host="ldap.example.org"
+ base="ou=people,dc=example,dc=org"
+ ssl="true"
+ userField="uid"
+ ;
+};
\ No newline at end of file
<html>
<body>
- <form method="POST" action="${login.endpoint}">
+ <form method="POST" action="/Authn/UserPassword">
<input name="j_username" type="text" tabindex="1" />
<input name="j_password" type="password" tabindex="2" />
<button tabindex="3"/>