s/SSO/SLO/

This commit is contained in:
Valentin Samir 2015-05-28 02:13:09 +02:00
parent 2bd2f8d8b3
commit c9629f65ae
7 changed files with 124 additions and 16 deletions

View file

@ -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)

View file

@ -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

View file

@ -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

View 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,
),
]

View file

@ -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>