mirror of
https://github.com/OpenKMIP/PyKMIP.git
synced 2025-04-08 19:25:06 +02:00
This change updates the implementation of the Credential objects. The UsernamePassword and Device credentials are now first-class objects and, along with the base Credential, have been restructured to match the current struct style. Comprehensive unit test suites for each class have been added. Additionally, the credential factory code and its usage in the KMIPProxy class and associated test suites have been updated to reflect this change.
66 lines
2.3 KiB
Python
66 lines
2.3 KiB
Python
# Copyright (c) 2014 The Johns Hopkins University/Applied Physics Laboratory
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from kmip.core import enums
|
|
from kmip.core import objects
|
|
|
|
|
|
class CredentialFactory(object):
|
|
|
|
def create_credential(self, credential_type, credential_value):
|
|
# Switch on the type of the credential
|
|
if credential_type is enums.CredentialType.USERNAME_AND_PASSWORD:
|
|
credential_value = self.create_username_password_credential(
|
|
credential_value
|
|
)
|
|
elif credential_type is enums.CredentialType.DEVICE:
|
|
credential_value = self.create_device_credential(credential_value)
|
|
else:
|
|
msg = 'Unrecognized credential type: {0}'
|
|
raise ValueError(msg.format(credential_type))
|
|
|
|
return objects.Credential(
|
|
credential_type=credential_type,
|
|
credential_value=credential_value
|
|
)
|
|
|
|
@staticmethod
|
|
def create_username_password_credential(value):
|
|
username = value.get('Username')
|
|
password = value.get('Password')
|
|
|
|
return objects.UsernamePasswordCredential(
|
|
username=username,
|
|
password=password
|
|
)
|
|
|
|
@staticmethod
|
|
def create_device_credential(value):
|
|
dsn = value.get('Device Serial Number')
|
|
password = value.get('Password')
|
|
dev_id = value.get('Device Identifier')
|
|
net_id = value.get('Network Identifier')
|
|
mach_id = value.get('Machine Identifier')
|
|
med_id = value.get('Media Identifier')
|
|
|
|
return objects.DeviceCredential(
|
|
device_serial_number=dsn,
|
|
password=password,
|
|
device_identifier=dev_id,
|
|
network_identifier=net_id,
|
|
machine_identifier=mach_id,
|
|
media_identifier=med_id
|
|
)
|