This attribute encoding has not been required since Moria3, which was
shut down in July 2010. This value should therefore no longer be used.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@154 a716ebb1-153a-0410-b759-cfb97c6a1b53
MellonSubjectConfirmationDataAddressCheck allows to block client address
checking as given in IdP assertion in the SubjectConfirmationData node,
it can be necessary when client and IdP or SP are in a NAT-ed network or
when the SP is behind a reverse proxy.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@152 a716ebb1-153a-0410-b759-cfb97c6a1b53
We cannot display any pages from the am_start_auth()-function since
it runs from the access checker. We therefore need to redirect to the
login handler, which can then display web pages.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@150 a716ebb1-153a-0410-b759-cfb97c6a1b53
The code in am_auth_new_ticket() was shared between the "auth"
endpoint and the code to start authentication from other requests. This
results in the possibility of unpredictable interactions between those
functions.
For example, it was possible to select the IdP from a random page by
adding the "IdP" parameter. The "ReturnTo" parameter could also affect
where the user was sent after authentication.
The result of this change is two new functions, one for starting
authentication from other requests, and one for handling the "auth"
endpoint. The "auth"-endpoint is no longer used by code, but may
be used elsewhere. It is therefore included for backwards
compatibility.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@149 a716ebb1-153a-0410-b759-cfb97c6a1b53
In preparation of splitting am_auth_new_ticket() into two functions,
extract the code to redirect to the discovery service into its own
function.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@148 a716ebb1-153a-0410-b759-cfb97c6a1b53
We now have a "login" endpoint that can be used for triggering
authentication. Make the discovery service send its response to that
page.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@147 a716ebb1-153a-0410-b759-cfb97c6a1b53
We assumed that the SP entityID was always the endpoint path
followed by "metadata". This does not need to be the case. This patch
changes it to fetch the SP entityID from the SP metadata.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@146 a716ebb1-153a-0410-b759-cfb97c6a1b53
For historic reasons, we added several headers to both "headers_out"
and "err_headers_out". This has the unfortunate side effect of sending
the headers twice. This change modifies the code to only add those
headers to "err_headers_out", which is sent both for successful
requests and for errors.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@145 a716ebb1-153a-0410-b759-cfb97c6a1b53
We currently handle requests to many endpoints from the access control
hooks. This change bypasses access control in those cases, and handles
the requests from the "handler" hook instead.
This change is necessary to be able to do anything else than redirects
from the handlers. As a side effect, it also simplifies the code.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@144 a716ebb1-153a-0410-b759-cfb97c6a1b53
The APR_ARRAY_PUSH() macro was recently added to apr. Instead of using
it, just use apr_array_push().
Thanks to Benjamin Dauver for providing this patch!
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@143 a716ebb1-153a-0410-b759-cfb97c6a1b53
- If request miss needed elements AuthnStatement or AuthnContext, HTTP
status BadRequest is returned.
- If request does not match one of the required AuthnContextClassRef,
HTTP status Forbidden is returned.
Thanks to Benjamin Dauvergne for implementing this.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@141 a716ebb1-153a-0410-b759-cfb97c6a1b53
You can list many class refs they will be concatenated inside an array.
Beware that in each directory, if there is any
MellonAuthnContextClassRef directive, any settings from the previous
level is overwritten.
Thanks to Benjamin Dauvergne for implementing this.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@140 a716ebb1-153a-0410-b759-cfb97c6a1b53
We used GHashTableIter, which wasn't introduced before version 2.16 of
GLib. This patch changes the code to simply use g_hash_table_get_keys
instead.
(This means that we depend on GLib 2.14.)
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@137 a716ebb1-153a-0410-b759-cfb97c6a1b53
Change configuration to inherit the lasso_server objects when nothing
affecting the lasso_server object changes from the parent configuration
object.
This should speed up processing of requests where you have
request-specific configuration changes, such as access control rules.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@130 a716ebb1-153a-0410-b759-cfb97c6a1b53
Lasso initializes the SessionIndex attribute of LogoutRequest message
itself since release 2.3.4 and directly remove the related assertions
since 2.3.0, so the old way to initialize the SessionIndex cannot work
anymore. Between version 2.3.0 and 2.3.4 it just cannot work at all but
it is better to send a broken logout request missing the SessionIndex
attribute than to raise a segmentation fault.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@121 a716ebb1-153a-0410-b759-cfb97c6a1b53
Unfortunately, the lasso_server objects were never destroyed, which
led to a memory leak when using request-specific configuration.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@118 a716ebb1-153a-0410-b759-cfb97c6a1b53
On 64-bit, "0" is an 32-bit integer while the parameter list should be
terminated by a 64-bit NULL pointer. Change the parameter to NULL to
avoid possible misbehaviour due to this.
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@115 a716ebb1-153a-0410-b759-cfb97c6a1b53
ap_construct_url() use the ServerName directive to reconstruct an
absolute URL. It allows to force the use of an https:// URL (when you
are behind an SSL proxy it is needed) by configuring your VirtualHost
like that:
ServerName https://example.com
git-svn-id: https://modmellon.googlecode.com/svn/trunk/mod_mellon2@110 a716ebb1-153a-0410-b759-cfb97c6a1b53