soteria 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +21 -0
- data/README.md +77 -0
- data/Rakefile +5 -0
- data/bin/bundler +17 -0
- data/bin/console +17 -0
- data/bin/htmldiff +17 -0
- data/bin/ldiff +17 -0
- data/bin/nokogiri +17 -0
- data/bin/rackup +17 -0
- data/bin/rake +17 -0
- data/bin/rspec +17 -0
- data/bin/setup +17 -0
- data/bin/socksify_ruby +17 -0
- data/lib/soteria.rb +10 -0
- data/lib/soteria/client.rb +326 -0
- data/lib/soteria/credential.rb +154 -0
- data/lib/soteria/credential_types.rb +13 -0
- data/lib/soteria/push.rb +141 -0
- data/lib/soteria/sms.rb +81 -0
- data/lib/soteria/user.rb +409 -0
- data/lib/soteria/utilities.rb +45 -0
- data/lib/soteria/version.rb +4 -0
- data/soteria.gemspec +26 -0
- data/spec/credential_spec.rb +121 -0
- data/spec/fixtures/credential/authenticate_credentials_response.xml +13 -0
- data/spec/fixtures/credential/credential_fail.xml +11 -0
- data/spec/fixtures/credential/credential_success.xml +12 -0
- data/spec/fixtures/credential/get_cred_info_response.xml +40 -0
- data/spec/fixtures/credential/get_server_time_response.xml +11 -0
- data/spec/fixtures/credential/register_sms_response.xml +12 -0
- data/spec/fixtures/push/authenticate_with_push_error.xml +9 -0
- data/spec/fixtures/push/authenticate_with_push_response.xml +14 -0
- data/spec/fixtures/sms/check_otp_success_response.xml +13 -0
- data/spec/fixtures/sms/send_sms_success_response.xml +10 -0
- data/spec/fixtures/user/add_credential_response.xml +9 -0
- data/spec/fixtures/user/clear_temp_password_response.xml +10 -0
- data/spec/fixtures/user/clear_user_pin_response.xml +10 -0
- data/spec/fixtures/user/create_user_response.xml +9 -0
- data/spec/fixtures/user/delete_user_response.xml +10 -0
- data/spec/fixtures/user/get_temp_pass_attr_response.xml +14 -0
- data/spec/fixtures/user/remove_credential_response.xml +10 -0
- data/spec/fixtures/user/set_temp_pass_attr_response.xml +10 -0
- data/spec/fixtures/user/set_temp_pass_response.xml +11 -0
- data/spec/fixtures/user/update_credential_response.xml +10 -0
- data/spec/fixtures/user/update_user_response.xml +10 -0
- data/spec/fixtures/wsdl/vipuserservices-1.7.xsd +1015 -0
- data/spec/fixtures/wsdl/vipuserservices-auth-1.7.wsdl +155 -0
- data/spec/fixtures/wsdl/vipuserservices-mgmt-1.7.wsdl +246 -0
- data/spec/fixtures/wsdl/vipuserservices-query-1.7.wsdl +114 -0
- data/spec/push_spec.rb +148 -0
- data/spec/sms_spec.rb +84 -0
- data/spec/soteria_spec.rb +8 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/user_spec.rb +245 -0
- metadata +206 -0
@@ -0,0 +1,45 @@
|
|
1
|
+
module Soteria
|
2
|
+
|
3
|
+
class Utilities
|
4
|
+
|
5
|
+
|
6
|
+
# Generate a request ID for a SOAP call.
|
7
|
+
#
|
8
|
+
# @param [String] prefix The prefix for the request ID. This should tell the user what the call is.
|
9
|
+
# @return [String] A string that is the request ID for a call. The request ID is just used for debugging purposes.
|
10
|
+
def self.get_request_id(prefix)
|
11
|
+
time = Time.new
|
12
|
+
prefix + '_' + time.strftime('%Y%m%d%H%M%S')
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
# Create a Savon client object to make calls.
|
17
|
+
#
|
18
|
+
# @see Savon::Client
|
19
|
+
# @param [String] wsdl The absolute path to, or the URL of the WSDL file for this client.
|
20
|
+
# @param [Boolean] should_log
|
21
|
+
# @param [String] cert_file The absolute path to the certificate file.
|
22
|
+
# @param [String] cert_key The absolute path to the certificate key file.
|
23
|
+
# @param [String] cert_key_password The password fo the certificate key file.
|
24
|
+
def self.create_client(wsdl, should_log, cert_file, cert_key, cert_key_password)
|
25
|
+
Savon.client(wsdl: wsdl,
|
26
|
+
env_namespace: :soapenv,
|
27
|
+
namespace: 'https://schemas.symantec.com/vip/2011/04/vipuserservices',
|
28
|
+
log: should_log,
|
29
|
+
ssl_version: :TLSv1,
|
30
|
+
ssl_cert_file: cert_file,
|
31
|
+
ssl_cert_key_file: cert_key,
|
32
|
+
ssl_cert_key_password: cert_key_password,
|
33
|
+
namespace_identifier: :vip)
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
CREDENTIAL_TYPES = {
|
38
|
+
standard: 'STANDARD_OTP',
|
39
|
+
certificate: 'CERTIFICATE',
|
40
|
+
sms: 'SMS_OTP',
|
41
|
+
voice: 'VOICE_OTP',
|
42
|
+
service: 'SERVICE_OTP'
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
data/soteria.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require 'soteria/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "soteria"
|
7
|
+
spec.version = Soteria::VERSION
|
8
|
+
spec.authors = ["Ryan Casler"]
|
9
|
+
spec.email = ['ryan.casler12@gmail.com']
|
10
|
+
|
11
|
+
spec.summary = 'Symantec VIP'
|
12
|
+
spec.description = 'A gem for authentication with Symantec VIP Services.'
|
13
|
+
spec.homepage = "https://github.com/ryanrampage1/soteria"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency 'savon', '~> 2.11', '>= 2.11.0'
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.13"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
26
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'savon/mock/spec_helper'
|
3
|
+
require 'date'
|
4
|
+
|
5
|
+
describe Soteria::Credential do
|
6
|
+
|
7
|
+
include Savon::SpecHelper
|
8
|
+
|
9
|
+
before :all do
|
10
|
+
savon.mock!
|
11
|
+
|
12
|
+
@credential = Soteria::Credential.new
|
13
|
+
@auth_client = Savon.client(wsdl: File.read('spec/fixtures/wsdl/vipuserservices-auth-1.7.wsdl'))
|
14
|
+
@mgmt_client = Savon.client(wsdl: File.read('spec/fixtures/wsdl/vipuserservices-mgmt-1.7.wsdl'))
|
15
|
+
@query_client = Savon.client(wsdl: File.read('spec/fixtures/wsdl/vipuserservices-query-1.7.wsdl'))
|
16
|
+
end
|
17
|
+
|
18
|
+
after :all do
|
19
|
+
savon.unmock!
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'returns correct values from a call that successfully authenticates a user' do
|
23
|
+
body = File.read('spec/fixtures/credential/credential_success.xml')
|
24
|
+
savon.expects(:authenticate_user).with(message: :any).returns(body)
|
25
|
+
res = @credential.authenticate_user_credential(@auth_client, '', '')
|
26
|
+
|
27
|
+
expect(res[:success]).to eq true
|
28
|
+
expect(res[:message]).to eq 'Success'
|
29
|
+
expect(res[:id]).to eq 'testsuccess1234'
|
30
|
+
expect(res[:auth_id]).to eq 'testsuccess123456'
|
31
|
+
expect(res[:detail]).to eq nil
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'returns correct values from a call that fails to authenticate a user' do
|
36
|
+
|
37
|
+
body = File.read('spec/fixtures/credential/credential_fail.xml')
|
38
|
+
savon.expects(:authenticate_user).with(message: :any).returns(body)
|
39
|
+
res = @credential.authenticate_user_credential(@auth_client, '', '')
|
40
|
+
|
41
|
+
expect(res[:success]).to eq false
|
42
|
+
expect(res[:message]).to eq 'Authentication failed.'
|
43
|
+
expect(res[:detail]).to eq 'Failed with an invalid OTP'
|
44
|
+
expect(res[:id]).to eq 'testfail1234'
|
45
|
+
expect(res[:auth_id]).to eq nil
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'gets the body for the authenticate credentials call' do
|
50
|
+
otp = 123342
|
51
|
+
|
52
|
+
result_hash = @credential.get_auth_body(otp, [{id: 1, type: 'a'}, {id: 2, type: 'b'}])
|
53
|
+
result_hash[:'vip:requestId'] = nil
|
54
|
+
|
55
|
+
expected_hash = {
|
56
|
+
'vip:requestId': nil,
|
57
|
+
'vip:credentials': [{'vip:credentialId': 1, 'vip:credentialType': 'a'}, {'vip:credentialId': 2, 'vip:credentialType': 'b'}],
|
58
|
+
'vip:otpAuthData': {
|
59
|
+
'vip:otp': otp
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
expect(result_hash).to match expected_hash
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'authenticates credentials' do
|
68
|
+
body = File.read('spec/fixtures/credential/authenticate_credentials_response.xml')
|
69
|
+
savon.expects(:authenticate_credentials).with(message: :any).returns(body)
|
70
|
+
|
71
|
+
result_hash = @credential.authenticate_credentials(@auth_client, '', [{id: 1, type: 'a'}, {id: 2, type: 'b'}])
|
72
|
+
|
73
|
+
expected_hash = {
|
74
|
+
success: true,
|
75
|
+
message: 'Success.',
|
76
|
+
id: 'AUTHCRED_87263487236',
|
77
|
+
auth_id: nil,
|
78
|
+
detail: nil
|
79
|
+
}
|
80
|
+
|
81
|
+
expect(result_hash).to match expected_hash
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'registers a sms credential' do
|
86
|
+
|
87
|
+
body = File.read('spec/fixtures/credential/register_sms_response.xml')
|
88
|
+
savon.expects(:register).with(message: :any).returns(body)
|
89
|
+
|
90
|
+
result_hash = @credential.register_sms(@mgmt_client, '')
|
91
|
+
|
92
|
+
expected_hash = {
|
93
|
+
success: false,
|
94
|
+
message: 'Credential is already registered for this account.',
|
95
|
+
id: 'test23456',
|
96
|
+
auth_id: nil,
|
97
|
+
detail: 'Token has already been activated.'
|
98
|
+
}
|
99
|
+
|
100
|
+
expect(result_hash).to match expected_hash
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'gets the server time' do
|
104
|
+
body = File.read('spec/fixtures/credential/get_server_time_response.xml')
|
105
|
+
savon.expects(:get_server_time).with(message: :any).returns(body)
|
106
|
+
|
107
|
+
result_hash = @credential.get_server_time(@query_client)
|
108
|
+
|
109
|
+
expected_hash = {
|
110
|
+
success: true,
|
111
|
+
message: 'Success',
|
112
|
+
id: 'abcd1234',
|
113
|
+
auth_id: nil,
|
114
|
+
detail: nil,
|
115
|
+
time: Date.parse('2010-07-26T00:54:47.390-07:00')
|
116
|
+
}
|
117
|
+
|
118
|
+
expect(result_hash).to match expected_hash
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" ?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<AuthenticateCredentialsResponse xmlns="https://schemas.vip.symantec.com">
|
5
|
+
<requestId>AUTHCRED_87263487236</requestId>
|
6
|
+
<status>0000</status>
|
7
|
+
<statusMessage>Success.</statusMessage>
|
8
|
+
<credentialId>VSMT74238764</credentialId>
|
9
|
+
<credentialType>STANDARD_OTP</credentialType>
|
10
|
+
<transactionId>734b6f661ed9ed2b</transactionId>
|
11
|
+
</AuthenticateCredentialsResponse>
|
12
|
+
</S:Body>
|
13
|
+
</S:Envelope>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
2
|
+
<S:Body>
|
3
|
+
<AuthenticateUserResponse xmlns="https://schemas.symantec.com/vip/2011/04/vipuserservices">
|
4
|
+
<requestId>testfail1234</requestId>
|
5
|
+
<status>6009</status>
|
6
|
+
<statusMessage>Authentication failed.</statusMessage>
|
7
|
+
<detail>49B5</detail>
|
8
|
+
<detailMessage>Failed with an invalid OTP</detailMessage>
|
9
|
+
</AuthenticateUserResponse>
|
10
|
+
</S:Body>
|
11
|
+
</S:Envelope>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
2
|
+
<S:Body>
|
3
|
+
<AuthenticateUserResponse xmlns="https://schemas.symantec.com/vip/2011/04/vipuserservices">
|
4
|
+
<requestId>testsuccess1234</requestId>
|
5
|
+
<status>0000</status>
|
6
|
+
<statusMessage>Success</statusMessage>
|
7
|
+
<credentialId>VSMT111111</credentialId>
|
8
|
+
<credentialType>STANDARD_OTP</credentialType>
|
9
|
+
<authnId>testsuccess123456</authnId>
|
10
|
+
</AuthenticateUserResponse>
|
11
|
+
</S:Body>
|
12
|
+
</S:Envelope>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<GetCredentialInfoResponse xmlns="https://schemas.vip.symantec.com">
|
5
|
+
<requestId>3nZ31rIlCr</requestId>
|
6
|
+
<status>0000</status>
|
7
|
+
<statusMessage>Success</statusMessage>
|
8
|
+
<credentialId>VSMB74327954</credentialId>
|
9
|
+
<credentialType>STANDARD_OTP</credentialType>
|
10
|
+
<credentialStatus>INACTIVE</credentialStatus>
|
11
|
+
<numBindings>1</numBindings>
|
12
|
+
<pushAttributes>
|
13
|
+
<Key>LAST_ENABLED_TS</Key>
|
14
|
+
<Value>12</Value>
|
15
|
+
</pushAttributes>
|
16
|
+
<pushAttributes>
|
17
|
+
<Key>PUSH_ENABLED</Key>
|
18
|
+
<Value>true</Value>
|
19
|
+
</pushAttributes>
|
20
|
+
<pushAttributes>
|
21
|
+
<Key>PUSH_ID</Key>
|
22
|
+
<Value>123456789</Value>
|
23
|
+
</pushAttributes>
|
24
|
+
<pushAttributes>
|
25
|
+
<Key>PUSH_PLATFORM</Key>
|
26
|
+
<Value>IPHONE</Value>
|
27
|
+
</pushAttributes>
|
28
|
+
<userBindingDetail>
|
29
|
+
<userId>john.doe@example.com</userId>
|
30
|
+
<userStatus>DISABLED</userStatus>
|
31
|
+
<bindingDetail>
|
32
|
+
<bindStatus>ENABLED</bindStatus>
|
33
|
+
<lastBindTime>2013-10-22T20:18:26.517Z</lastBindTime>
|
34
|
+
<lastAuthnTime>2014-03-18T15:13:51.232Z</lastAuthnTime>
|
35
|
+
<lastAuthnId>FB732F382F9D8BED@lastAuthnId
|
36
|
+
</bindingDetail>
|
37
|
+
</userBindingDetail>
|
38
|
+
</GetCredentialInfoResponse>
|
39
|
+
</S:Body>
|
40
|
+
</S:Envelope>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<getServerTimeResponse xmlns="https://schemas.vip.symantec.com">
|
5
|
+
<requestId>abcd1234</requestId>
|
6
|
+
<status>0000</status>
|
7
|
+
<statusMessage>Success</statusMessage>
|
8
|
+
<timestamp>2010-07-26T00:54:47.390-07:00</timestamp>
|
9
|
+
</getServerTimeResponse>
|
10
|
+
</S:Body>
|
11
|
+
</S:Envelope>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?xml version="1.0" ?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<RegisterResponse xmlns="https://schemas.symantec.com/vip/2011/04/vipuserservices">
|
5
|
+
<requestId>test23456</requestId>
|
6
|
+
<status>6026</status>
|
7
|
+
<statusMessage>Credential is already registered for this account.</statusMessage>
|
8
|
+
<detail>4E1B</detail>
|
9
|
+
<detailMessage>Token has already been activated.</detailMessage>
|
10
|
+
</RegisterResponse>
|
11
|
+
</S:Body>
|
12
|
+
</S:Envelope>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
2
|
+
<S:Body>
|
3
|
+
<AuthenticateUserWithPushResponse xmlns="https://schemas.symantec.com/vip/2011/04/vipuserservices">
|
4
|
+
<requestId>send_push_request_20161021152920</requestId>
|
5
|
+
<status>6003</status>
|
6
|
+
<statusMessage>User does not exist.</statusMessage>
|
7
|
+
</AuthenticateUserWithPushResponse>
|
8
|
+
</S:Body>
|
9
|
+
</S:Envelope>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
2
|
+
<S:Body>
|
3
|
+
<AuthenticateUserWithPushResponse xmlns="https://schemas.symantec.com/vip/2011/04/vipuserservices">
|
4
|
+
<requestId>send_push_request_20161021152920</requestId>
|
5
|
+
<status>6040</status>
|
6
|
+
<statusMessage>Mobile push request sent</statusMessage>
|
7
|
+
<transactionId>8d70d18461cc9093</transactionId>
|
8
|
+
<pushDetail>
|
9
|
+
<pushCredentialId>VSMT35238564</pushCredentialId>
|
10
|
+
<pushSent>true</pushSent>
|
11
|
+
</pushDetail>
|
12
|
+
</AuthenticateUserWithPushResponse>
|
13
|
+
</S:Body>
|
14
|
+
</S:Envelope>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<CheckOtpResponse xmlns="https://schemas.symantec.com/vip/2011/04/vipuserservices">
|
5
|
+
<requestId>test123</requestId>
|
6
|
+
<status>0000</status>
|
7
|
+
<statusMessage>Success</statusMessage>
|
8
|
+
<credentialId>123456789</credentialId>
|
9
|
+
<credentialType>SMS_OTP</credentialType>
|
10
|
+
<authnId>testauth1234</authnId>
|
11
|
+
</CheckOtpResponse>
|
12
|
+
</S:Body>
|
13
|
+
</S:Envelope>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<SendOtpResponse xmlns="https://schemas.symantec.com/vip/2011/04/vipuserservices">
|
5
|
+
<requestId>test123</requestId>
|
6
|
+
<status>0000</status>
|
7
|
+
<statusMessage>Success</statusMessage>
|
8
|
+
</SendOtpResponse>
|
9
|
+
</S:Body>
|
10
|
+
</S:Envelope>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<AddCredentialResponse xmlns="https://schemas.vip.symantec.com">
|
5
|
+
<requestId>4ACCDv2rtj</requestId><status>0000</status>
|
6
|
+
<statusMessage>Success</statusMessage>
|
7
|
+
</AddCredentialResponse>
|
8
|
+
</S:Body>
|
9
|
+
</S:Envelope>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<ClearTemporaryPasswordResponse xmlns="https://schemas.vip.symantec.com">
|
5
|
+
<requestId>0HaNgjq7z9</requestId>
|
6
|
+
<status>0000</status>
|
7
|
+
<statusMessage>Success</statusMessage>
|
8
|
+
</ClearTemporaryPasswordResponse>
|
9
|
+
</S:Body>
|
10
|
+
</S:Envelope>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<ClearUserPinResponse xmlns="https://schemas.vip.symantec.com">
|
5
|
+
<requestId>123edabc</requestId>
|
6
|
+
<status>0000</status>
|
7
|
+
<statusMessage>Success</statusMessage>
|
8
|
+
</ClearUserPinResponse>
|
9
|
+
</S:Body>
|
10
|
+
</S:Envelope>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
2
|
+
<S:Body>
|
3
|
+
<CreateUserResponse xmlns="https://schemas.symantec.com/vip/2011/04/vipuserservices">
|
4
|
+
<requestId>test1234</requestId>
|
5
|
+
<status>0000</status>
|
6
|
+
<statusMessage>Success</statusMessage>
|
7
|
+
</CreateUserResponse>
|
8
|
+
</S:Body>
|
9
|
+
</S:Envelope>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<deleteUserResponse xmlns="https://schemas.vip.symantec.com">
|
5
|
+
<requestId>test1234</requestId>
|
6
|
+
<status>0000</status>
|
7
|
+
<statusMessage>Success</statusMessage>
|
8
|
+
</deleteUserResponse>
|
9
|
+
</S:Body>
|
10
|
+
</S:Envelope>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<GetTemporaryPasswordAttributesResponse xmlns="https://schemas.vip.symantec.com">
|
5
|
+
<requestId>123456</requestId>
|
6
|
+
<status>0000</status>
|
7
|
+
<statusMessage>Success</statusMessage>
|
8
|
+
<tempPwdAttributes>
|
9
|
+
<expirationTime>2011-04-08T08:17:50.000Z</expirationTime>
|
10
|
+
<oneTimeUseOnly>true</oneTimeUseOnly>
|
11
|
+
</tempPwdAttributes>
|
12
|
+
</GetTemporaryPasswordAttributesResponse>
|
13
|
+
</S:Body>
|
14
|
+
</S:Envelope>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
+
<S:Body>
|
4
|
+
<removeCredentialResponse xmlns="https://schemas.vip.symantec.com">
|
5
|
+
<requestId>1234abcd</requestId>
|
6
|
+
<status>0000</status>
|
7
|
+
<statusMessage>Success</statusMessage>
|
8
|
+
</removeCredentialResponse>
|
9
|
+
</S:Body>
|
10
|
+
</S:Envelope>
|