1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 package fr.paris.lutece.plugins.identitystore.modules.cnicertifier.service;
36
37 import fr.paris.lutece.plugins.identitystore.modules.cnicertifier.business.CNI;
38 import fr.paris.lutece.plugins.identitystore.web.rs.dto.AttributeDto;
39 import fr.paris.lutece.plugins.identitystore.web.rs.dto.AuthorDto;
40 import fr.paris.lutece.plugins.identitystore.web.rs.dto.CertificateDto;
41 import fr.paris.lutece.plugins.identitystore.web.rs.dto.IdentityChangeDto;
42 import fr.paris.lutece.plugins.identitystore.web.rs.dto.IdentityDto;
43 import fr.paris.lutece.plugins.identitystore.web.service.AuthorType;
44 import fr.paris.lutece.plugins.identitystore.web.service.IdentityService;
45 import fr.paris.lutece.portal.service.security.LuteceUser;
46 import fr.paris.lutece.portal.service.spring.SpringContextService;
47 import fr.paris.lutece.portal.service.util.AppPropertiesService;
48
49 import java.util.HashMap;
50 import java.util.Map;
51 import java.util.concurrent.ConcurrentHashMap;
52
53
54
55
56 public class CNICertifierService
57 {
58 private static final String BEAN_IDENTITYSTORE_SERVICE = "identitystore-cnicertifier.identitystore.service";
59 private static final String PROPERTY_IDENTITY_SERVICE_CLIENT_CODE = "identitystore-cnicertifier.identitystore.client.code";
60 private static final String CERTIFIER_CODE = "cnicertifier";
61 private static final String CLIENT_CODE = AppPropertiesService.getProperty( PROPERTY_IDENTITY_SERVICE_CLIENT_CODE );
62
63
64
65
66
67
68
69
70
71 public void certify( LuteceUser user, CNI cni )
72 {
73 IdentityService identityService = SpringContextService.getBean( BEAN_IDENTITYSTORE_SERVICE );
74
75 IdentityChangeDto identityChange = new IdentityChangeDto( );
76 IdentityDto identity = new IdentityDto( );
77
78 identity.setConnectionId( user.getName( ) );
79 Map<String, AttributeDto> mapAttributes = new ConcurrentHashMap<>( );
80 addAttribute( mapAttributes, "gender", cni.getGender( ) );
81 addAttribute( mapAttributes, "first_name", cni.getFirstName( ) );
82 addAttribute( mapAttributes, "family_name", cni.getLastName( ) );
83 addAttribute( mapAttributes, "birthdate", cni.getBirthDate( ) );
84 addAttribute( mapAttributes, "birthplace", cni.getBirthPlace( ) );
85
86 identity.setAttributes( mapAttributes );
87 identityChange.setIdentity( identity );
88
89 AuthorDto author = new AuthorDto( );
90 author.setApplicationCode( CLIENT_CODE );
91 author.setType( AuthorType.TYPE_USER_OWNER.getTypeValue( ) );
92 author.setId( AuthorDto.USER_DEFAULT_ID );
93 identityChange.setAuthor( author );
94
95 identityService.updateIdentity( identityChange, new HashMap<>( ) );
96 }
97
98
99
100
101
102
103
104
105
106
107
108 private void addAttribute( Map<String, AttributeDto> map, String strKey, String strValue )
109 {
110 AttributeDto attribute = new AttributeDto( );
111 attribute.setKey( strKey );
112 attribute.setValue( strValue );
113 CertificateDto certificateDto = new CertificateDto( );
114 certificateDto.setCertifierCode( CERTIFIER_CODE );
115 attribute.setCertificate( certificateDto );
116 map.put( attribute.getKey( ), attribute );
117 }
118
119 }