19
19
import java .util .Map ;
20
20
21
21
@ SuppressWarnings ("unused" )
22
- public class RedirectBinding extends Binding {
22
+ public class RedirectBinding extends Binding {
23
23
24
24
private static final Logger logger = LogManager .getLogger (RedirectBinding .class );
25
25
@@ -29,13 +29,11 @@ public class RedirectBinding extends Binding{
29
29
// EXTERNAL OBJECT PUBLIC METHODS - BEGIN
30
30
31
31
32
- public RedirectBinding ()
33
- {
32
+ public RedirectBinding () {
34
33
logger .trace ("RedirectBinding constructor" );
35
34
}
36
35
37
- public void init (String queryString )
38
- {
36
+ public void init (String queryString ) {
39
37
logger .trace ("init" );
40
38
logger .debug (MessageFormat .format ("init - queryString : {0}" , queryString ));
41
39
this .redirectMessage = parseRedirect (queryString );
@@ -46,89 +44,75 @@ public void init(String queryString)
46
44
}
47
45
48
46
49
- public static String login (SamlParms parms , String relayState )
50
- {
47
+ public static String login (SamlParms parms , String relayState ) {
51
48
Document request = SamlAssertionUtils .createLoginRequest (parms .getId (), parms .getDestination (), parms .getAcs (), parms .getIssuer (), parms .getPolicyFormat (), parms .getAuthnContext (), parms .getSPName (), parms .getForceAuthn ());
52
49
return generateQuery (request , parms .getDestination (), parms .getCertPath (), parms .getCertPass (), parms .getCertAlias (), relayState );
53
50
}
54
51
55
- public static String logout (SamlParms parms , String relayState )
56
- {
52
+ public static String logout (SamlParms parms , String relayState ) {
57
53
Document request = SamlAssertionUtils .createLogoutRequest (parms .getId (), parms .getIssuer (), parms .getNameID (), parms .getSessionIndex (), parms .getDestination ());
58
54
return generateQuery (request , parms .getDestination (), parms .getCertPath (), parms .getCertPass (), parms .getCertAlias (), relayState );
59
55
}
60
56
61
- public boolean verifySignatures (SamlParms parms )
62
- {
57
+ public boolean verifySignatures (SamlParms parms ) {
63
58
logger .debug ("verifySignatures" );
64
59
65
- try
66
- {
60
+ try {
67
61
return DSig .validateSignatures (this .xmlDoc , parms .getTrustCertPath (), parms .getTrustCertAlias (), parms .getTrustCertPass ());
68
- }catch (Exception e )
69
- {
62
+ } catch (Exception e ) {
70
63
logger .error ("verifySignature" , e );
71
64
return false ;
72
65
}
73
66
}
74
67
75
- public String getLogoutAssertions ()
76
- {
68
+ public String getLogoutAssertions () {
77
69
logger .trace ("getLogoutAssertions" );
78
70
return SamlAssertionUtils .getLogoutInfo (this .xmlDoc );
79
71
}
80
72
81
- public String getRelayState ()
82
- {
73
+ public String getRelayState () {
83
74
logger .trace ("getRelayState" );
84
75
try {
85
76
return this .redirectMessage .get ("RelayState" ) == null ? "" : URLDecoder .decode (this .redirectMessage .get ("RelayState" ), StandardCharsets .UTF_8 .name ());
86
- }catch (Exception e )
87
- {
77
+ } catch (Exception e ) {
88
78
logger .error ("getRelayState" , e );
89
79
return "" ;
90
80
}
91
81
}
92
82
93
- public String getLoginAssertions ()
94
- {
83
+ public String getLoginAssertions () {
95
84
//Getting user's data by URL parms (GET) is deemed insecure so we are not implementing this method for redirect binding
96
85
logger .error ("getLoginAssertions - NOT IMPLEMENTED insecure SAML implementation" );
97
86
return "" ;
98
87
}
99
88
100
- public String getRoles (String name )
101
- {
89
+ public String getRoles (String name ) {
102
90
//Getting user's data by URL parms (GET) is deemed insecure so we are not implementing this method for redirect binding
103
91
logger .error ("getRoles - NOT IMPLEMENTED insecure SAML implementation" );
104
92
return "" ;
105
93
}
106
94
107
- public String getLoginAttribute (String name )
108
- {
95
+ public String getLoginAttribute (String name ) {
109
96
//Getting user's data by URL parms (GET) is deemed insecure so we are not implementing this method for redirect binding
110
97
logger .error ("getLoginAttribute - NOT IMPLEMENTED insecure SAML implementation" );
111
98
return "" ;
112
99
}
113
100
114
101
// EXTERNAL OBJECT PUBLIC METHODS - END
115
102
116
- private static Map <String , String > parseRedirect (String request )
117
- {
103
+ private static Map <String , String > parseRedirect (String request ) {
118
104
logger .trace ("parseRedirect" );
119
- Map <String ,String > result = new HashMap <>();
105
+ Map <String , String > result = new HashMap <>();
120
106
String [] redirect = request .split ("&" );
121
107
122
- for (String s : redirect )
123
- {
108
+ for (String s : redirect ) {
124
109
String [] res = s .split ("=" );
125
110
result .put (res [0 ], res [1 ]);
126
111
}
127
112
return result ;
128
113
}
129
114
130
- private static String generateQuery (Document request , String destination , String certPath , String certPass , String alias , String relayState )
131
- {
115
+ private static String generateQuery (Document request , String destination , String certPath , String certPass , String alias , String relayState ) {
132
116
logger .trace ("generateQuery" );
133
117
try {
134
118
String samlRequestParameter = Encoding .delfateAndEncodeXmlParameter (Encoding .documentToString (request ));
@@ -143,25 +127,22 @@ private static String generateQuery(Document request, String destination, String
143
127
144
128
logger .debug (MessageFormat .format ("generateQuery - query: {0}" , query ));
145
129
return MessageFormat .format ("{0}?{1}" , destination , query );
146
- }catch (Exception e )
147
- {
130
+ } catch (Exception e ) {
148
131
logger .error ("generateQuery" , e );
149
132
return "" ;
150
133
}
151
134
152
135
}
153
136
154
- private static String signRequest_RedirectBinding (String query , String path , String password , Hash hash , String alias )
155
- {
137
+ private static String signRequest_RedirectBinding (String query , String path , String password , Hash hash , String alias ) {
156
138
logger .trace ("signRequest_RedirectBinding" );
157
- RSADigestSigner signer = new RSADigestSigner (Hash .getDigest (hash ));
139
+ RSADigestSigner signer = new RSADigestSigner (Hash .getDigest (hash ));
158
140
byte [] inputText = query .getBytes (StandardCharsets .UTF_8 );
159
141
try (InputStream inputStream = new ByteArrayInputStream (inputText )) {
160
142
setUpSigner (signer , inputStream , Keys .loadPrivateKey (path , alias , password ), true );
161
143
byte [] outputBytes = signer .generateSignature ();
162
144
return Base64 .toBase64String (outputBytes );
163
- }catch (Exception e )
164
- {
145
+ } catch (Exception e ) {
165
146
logger .error ("signRequest_RedirectBinding" , e );
166
147
return "" ;
167
148
}
0 commit comments