Persistent ID should not be equal to userid !
According to the spec: Persistent name identifiers generated by identity providers MUST be constructed using pseudo-random values that have no discernible correspondence with the subject's actual identifier (for example, username)
This commit is contained in:
		@@ -163,8 +163,8 @@ class IdentDB(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            _id = "%s@%s" % (_id, self.domain)
 | 
					            _id = "%s@%s" % (_id, self.domain)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if nformat == NAMEID_FORMAT_PERSISTENT:
 | 
					        # if nformat == NAMEID_FORMAT_PERSISTENT:
 | 
				
			||||||
            _id = userid
 | 
					        #     _id = userid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        nameid = NameID(format=nformat, sp_name_qualifier=sp_name_qualifier,
 | 
					        nameid = NameID(format=nformat, sp_name_qualifier=sp_name_qualifier,
 | 
				
			||||||
                        name_qualifier=name_qualifier, text=_id)
 | 
					                        name_qualifier=name_qualifier, text=_id)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -84,6 +84,17 @@ class TestIdentifier():
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        assert id == "foobar"
 | 
					        assert id == "foobar"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_persistent_2(self):
 | 
				
			||||||
 | 
					        userid = 'foobar'
 | 
				
			||||||
 | 
					        nameid1 = self.id.persistent_nameid(userid, sp_name_qualifier="sp1",
 | 
				
			||||||
 | 
					                                            name_qualifier="name0")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nameid2 = self.id.persistent_nameid(userid, sp_name_qualifier="sp1",
 | 
				
			||||||
 | 
					                                            name_qualifier="name0")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # persistent NameIDs should be _persistent_ :-)
 | 
				
			||||||
 | 
					        assert nameid1 == nameid2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_transient_1(self):
 | 
					    def test_transient_1(self):
 | 
				
			||||||
        policy = Policy({
 | 
					        policy = Policy({
 | 
				
			||||||
            "default": {
 | 
					            "default": {
 | 
				
			||||||
@@ -124,8 +135,8 @@ class TestIdentifier():
 | 
				
			|||||||
                                     'name_qualifier'])
 | 
					                                     'name_qualifier'])
 | 
				
			||||||
        assert nameid.sp_name_qualifier == 'http://vo.example.org/biomed'
 | 
					        assert nameid.sp_name_qualifier == 'http://vo.example.org/biomed'
 | 
				
			||||||
        assert nameid.format == NAMEID_FORMAT_PERSISTENT
 | 
					        assert nameid.format == NAMEID_FORMAT_PERSISTENT
 | 
				
			||||||
        # we want to keep the user identifier in the nameid node
 | 
					        # we want to *NOT* keep the user identifier in the nameid node
 | 
				
			||||||
        assert nameid.text == "foobar"
 | 
					        assert nameid.text != "foobar"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_vo_2(self):
 | 
					    def test_vo_2(self):
 | 
				
			||||||
        policy = Policy({
 | 
					        policy = Policy({
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user