s/SSO/SLO/
This commit is contained in:
parent
2bd2f8d8b3
commit
c9629f65ae
7 changed files with 124 additions and 16 deletions
|
@ -59,7 +59,7 @@ class ServicePatternAdmin(admin.ModelAdmin):
|
||||||
ReplaceAttributValueInline,
|
ReplaceAttributValueInline,
|
||||||
FilterAttributValueInline
|
FilterAttributValueInline
|
||||||
)
|
)
|
||||||
list_display = ('pos', 'name', 'pattern', 'proxy', 'single_sign_out')
|
list_display = ('pos', 'name', 'pattern', 'proxy', 'single_log_out')
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(User, UserAdmin)
|
admin.site.register(User, UserAdmin)
|
||||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cas_server\n"
|
"Project-Id-Version: cas_server\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2015-05-27 22:56+0200\n"
|
"POT-Creation-Date: 2015-05-28 02:10+0200\n"
|
||||||
"PO-Revision-Date: 2015-05-23 19:03+0100\n"
|
"PO-Revision-Date: 2015-05-23 19:03+0100\n"
|
||||||
"Last-Translator: Valentin Samir <valentin.samir@crans.org>\n"
|
"Last-Translator: Valentin Samir <valentin.samir@crans.org>\n"
|
||||||
"Language-Team: django <LL@li.org>\n"
|
"Language-Team: django <LL@li.org>\n"
|
||||||
|
@ -84,13 +84,13 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: models.py:182
|
#: models.py:182
|
||||||
msgid "single sign out"
|
msgid "single log out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: models.py:183
|
#: models.py:183
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Connect to the service"
|
#| msgid "Connect to the service"
|
||||||
msgid "Enable SSO for the service"
|
msgid "Enable SLO for the service"
|
||||||
msgstr "Connect to the service"
|
msgstr "Connect to the service"
|
||||||
|
|
||||||
#: models.py:225
|
#: models.py:225
|
||||||
|
|
Binary file not shown.
|
@ -7,8 +7,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cas_server\n"
|
"Project-Id-Version: cas_server\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2015-05-27 22:56+0200\n"
|
"POT-Creation-Date: 2015-05-28 02:10+0200\n"
|
||||||
"PO-Revision-Date: 2015-05-27 23:05+0100\n"
|
"PO-Revision-Date: 2015-05-28 02:15+0100\n"
|
||||||
"Last-Translator: Valentin Samir <valentin.samir@crans.org>\n"
|
"Last-Translator: Valentin Samir <valentin.samir@crans.org>\n"
|
||||||
"Language-Team: django <LL@li.org>\n"
|
"Language-Team: django <LL@li.org>\n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
|
@ -88,12 +88,12 @@ msgstr ""
|
||||||
"s'authentifier en temps l'utilisateur à un autre service"
|
"s'authentifier en temps l'utilisateur à un autre service"
|
||||||
|
|
||||||
#: models.py:182
|
#: models.py:182
|
||||||
msgid "single sign out"
|
msgid "single log out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: models.py:183
|
#: models.py:183
|
||||||
msgid "Enable SSO for the service"
|
msgid "Enable SLO for the service"
|
||||||
msgstr "Active le SSO pour le service"
|
msgstr "Active le SLO pour le service"
|
||||||
|
|
||||||
#: models.py:225
|
#: models.py:225
|
||||||
msgid "username"
|
msgid "username"
|
||||||
|
@ -140,7 +140,7 @@ msgstr "une expression régulière reconnaissant ce qui doit être remplacé"
|
||||||
|
|
||||||
#: models.py:290
|
#: models.py:290
|
||||||
msgid "replace expression, groups are capture by \\1, \\2 …"
|
msgid "replace expression, groups are capture by \\1, \\2 …"
|
||||||
msgstr ""
|
msgstr "expression de remplacement, les groupe sont capturé par \\1, \\2"
|
||||||
|
|
||||||
#: models.py:337
|
#: models.py:337
|
||||||
#, python-format
|
#, python-format
|
||||||
|
|
108
cas_server/migrations/0014_auto_20150528_0012.py
Normal file
108
cas_server/migrations/0014_auto_20150528_0012.py
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import models, migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('cas_server', '0013_servicepattern_single_sign_out'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='servicepattern',
|
||||||
|
name='single_sign_out',
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='servicepattern',
|
||||||
|
name='single_log_out',
|
||||||
|
field=models.BooleanField(default=False, help_text='Enable SLO for the service', verbose_name='single log out'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='filterattributvalue',
|
||||||
|
name='attribut',
|
||||||
|
field=models.CharField(help_text='Name of the attribut which must verify pattern', max_length=255, verbose_name='attribut'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='filterattributvalue',
|
||||||
|
name='pattern',
|
||||||
|
field=models.CharField(help_text='a regular expression', max_length=255, verbose_name='pattern'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='replaceattributname',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(help_text='name of an attribut to send to the service', max_length=255, verbose_name='name'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='replaceattributname',
|
||||||
|
name='replace',
|
||||||
|
field=models.CharField(help_text='name under which the attribut will be showto the service. empty = default name of the attribut', max_length=255, verbose_name='replace', blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='replaceattributvalue',
|
||||||
|
name='attribut',
|
||||||
|
field=models.CharField(help_text='Name of the attribut for which the value must be replace', max_length=255, verbose_name='attribut'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='replaceattributvalue',
|
||||||
|
name='pattern',
|
||||||
|
field=models.CharField(help_text='An regular expression maching whats need to be replaced', max_length=255, verbose_name='pattern'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='replaceattributvalue',
|
||||||
|
name='replace',
|
||||||
|
field=models.CharField(help_text='replace expression, groups are capture by \\1, \\2 \u2026', max_length=255, verbose_name='replace', blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='servicepattern',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(null=True, max_length=255, blank=True, help_text='A name for the service', unique=True, verbose_name='name'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='servicepattern',
|
||||||
|
name='pattern',
|
||||||
|
field=models.CharField(unique=True, max_length=255, verbose_name='pattern'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='servicepattern',
|
||||||
|
name='pos',
|
||||||
|
field=models.IntegerField(default=100, verbose_name='position'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='servicepattern',
|
||||||
|
name='proxy',
|
||||||
|
field=models.BooleanField(default=False, help_text='A ProxyGrantingTicket can be delivered to the service in order to authenticate for the user on a backend service', verbose_name='proxy'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='servicepattern',
|
||||||
|
name='restrict_users',
|
||||||
|
field=models.BooleanField(default=False, help_text='Limit username allowed to connect to the list provided bellow', verbose_name='restrict username'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='servicepattern',
|
||||||
|
name='user_field',
|
||||||
|
field=models.CharField(default=b'', help_text='Name of the attribut to transmit as username, empty = login', max_length=255, verbose_name='user field', blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='username',
|
||||||
|
name='value',
|
||||||
|
field=models.CharField(help_text='username allowed to connect to the service', max_length=255, verbose_name='username'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
]
|
|
@ -66,7 +66,7 @@ class User(models.Model):
|
||||||
return self.username
|
return self.username
|
||||||
|
|
||||||
def logout(self, request):
|
def logout(self, request):
|
||||||
"""Sending SSO request to all services the user logged in"""
|
"""Sending SLO request to all services the user logged in"""
|
||||||
async_list = []
|
async_list = []
|
||||||
session = FuturesSession(executor=ThreadPoolExecutor(max_workers=10))
|
session = FuturesSession(executor=ThreadPoolExecutor(max_workers=10))
|
||||||
for ticket in ServiceTicket.objects.filter(user=self, validate=True):
|
for ticket in ServiceTicket.objects.filter(user=self, validate=True):
|
||||||
|
@ -177,10 +177,10 @@ class ServicePattern(models.Model):
|
||||||
help_text=_("A ProxyGrantingTicket can be delivered to the service " \
|
help_text=_("A ProxyGrantingTicket can be delivered to the service " \
|
||||||
"in order to authenticate for the user on a backend service")
|
"in order to authenticate for the user on a backend service")
|
||||||
)
|
)
|
||||||
single_sign_out = models.BooleanField(
|
single_log_out = models.BooleanField(
|
||||||
default=False,
|
default=False,
|
||||||
verbose_name=_(u"single sign out"),
|
verbose_name=_(u"single log out"),
|
||||||
help_text=_("Enable SSO for the service")
|
help_text=_("Enable SLO for the service")
|
||||||
)
|
)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
|
@ -311,8 +311,8 @@ class Ticket(models.Model):
|
||||||
return u"Ticket(%s, %s)" % (self.user, self.service)
|
return u"Ticket(%s, %s)" % (self.user, self.service)
|
||||||
|
|
||||||
def logout(self, request, session):
|
def logout(self, request, session):
|
||||||
"""Send a SSO request to the ticket service"""
|
"""Send a SLO request to the ticket service"""
|
||||||
if self.validate and self.service_pattern.single_sign_out:
|
if self.validate and self.service_pattern.single_log_out:
|
||||||
xml = """<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
|
xml = """<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
|
||||||
ID="%(id)s" Version="2.0" IssueInstant="%(datetime)s">
|
ID="%(id)s" Version="2.0" IssueInstant="%(datetime)s">
|
||||||
<saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"></saml:NameID>
|
<saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"></saml:NameID>
|
||||||
|
|
Loading…
Reference in a new issue