1
/* $Id: login.h,v 1.30 2004/09/06 14:14:26 nclapies Exp $
3
* Lasso - A free implementation of the Liberty Alliance specifications.
5
* Copyright (C) 2004 Entr'ouvert
6
* http://lasso.entrouvert.org
8
* Authors: Nicolas Clapies <nclapies@entrouvert.com>
9
* Valery Febvre <vfebvre@easter-eggs.com>
11
* This program is free software; you can redistribute it and/or modify
12
* it under the terms of the GNU General Public License as published by
13
* the Free Software Foundation; either version 2 of the License, or
14
* (at your option) any later version.
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU General Public License for more details.
21
* You should have received a copy of the GNU General Public License
22
* along with this program; if not, write to the Free Software
23
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
#ifndef __LASSO_LOGIN_H__
27
#define __LASSO_LOGIN_H__
32
#endif /* __cplusplus */
34
#include <lasso/environs/profile.h>
36
#include <lasso/protocols/authn_request.h>
37
#include <lasso/protocols/authn_response.h>
38
#include <lasso/protocols/request.h>
39
#include <lasso/protocols/response.h>
41
#define LASSO_TYPE_LOGIN (lasso_login_get_type())
42
#define LASSO_LOGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_LOGIN, LassoLogin))
43
#define LASSO_LOGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), LASSO_TYPE_LOGIN, LassoLoginClass))
44
#define LASSO_IS_LOGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_LOGIN))
45
#define LASSO_IS_LOGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LASSO_TYPE_LOGIN))
46
#define LASSO_LOGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), LASSO_TYPE_LOGIN, LassoLoginClass))
48
typedef struct _LassoLogin LassoLogin;
49
typedef struct _LassoLoginClass LassoLoginClass;
50
typedef struct _LassoLoginPrivate LassoLoginPrivate;
53
lassoLoginProtocolProfileBrwsArt = 1,
54
lassoLoginProtocolProfileBrwsPost,
55
} lassoLoginProtocolProfile;
60
lassoLoginProtocolProfile protocolProfile;
62
gchar *assertionArtifact;
67
lassoHttpMethod http_method;
68
LassoLoginPrivate *private;
71
struct _LassoLoginClass {
72
LassoProfileClass parent;
75
LASSO_EXPORT GType lasso_login_get_type (void);
77
LASSO_EXPORT LassoLogin* lasso_login_new (LassoServer *server);
79
LASSO_EXPORT LassoLogin* lasso_login_new_from_dump (LassoServer *server,
82
LASSO_EXPORT gint lasso_login_accept_sso (LassoLogin *login);
84
LASSO_EXPORT gint lasso_login_build_artifact_msg (LassoLogin *login,
85
gboolean authentication_result,
86
const gchar *authenticationMethod,
87
const gchar *reauthenticateOnOrAfter,
88
lassoHttpMethod http_method);
90
LASSO_EXPORT gint lasso_login_build_authn_request_msg (LassoLogin *login,
91
const gchar *remote_providerID);
93
LASSO_EXPORT gint lasso_login_build_authn_response_msg (LassoLogin *login,
94
gboolean authentication_result,
95
const gchar *authenticationMethod,
96
const gchar *reauthenticateOnOrAfter);
98
LASSO_EXPORT gint lasso_login_build_request_msg (LassoLogin *login);
100
LASSO_EXPORT gint lasso_login_build_response_msg (LassoLogin *login);
102
LASSO_EXPORT void lasso_login_destroy (LassoLogin *login);
104
LASSO_EXPORT gchar* lasso_login_dump (LassoLogin *login);
106
LASSO_EXPORT LassoAssertion* lasso_login_get_assertion (LassoLogin *login);
108
LASSO_EXPORT gint lasso_login_init_authn_request (LassoLogin *login,
109
lassoHttpMethod http_method);
111
LASSO_EXPORT gint lasso_login_init_from_authn_request_msg (LassoLogin *login,
112
gchar *authn_request_msg,
113
lassoHttpMethod authn_request_http_method);
115
LASSO_EXPORT gint lasso_login_init_request (LassoLogin *login,
117
lassoHttpMethod response_http_method);
119
LASSO_EXPORT gboolean lasso_login_must_authenticate (LassoLogin *login);
121
LASSO_EXPORT gint lasso_login_process_authn_response_msg (LassoLogin *login,
122
gchar *authn_response_msg);
124
LASSO_EXPORT gint lasso_login_process_request_msg (LassoLogin *login,
127
LASSO_EXPORT gint lasso_login_process_response_msg (LassoLogin *login,
128
gchar *response_msg);
130
LASSO_EXPORT gint lasso_login_set_assertion (LassoLogin *login,
131
LassoAssertion *assertion);
133
LASSO_EXPORT gint lasso_login_set_assertion_from_dump (LassoLogin *login,
134
gchar *assertion_dump);
138
#endif /* __cplusplus */
140
#endif /* __LASSO_LOGIN_H__ */