Expose server credentials thru Java APIs

This commit is contained in:
Jim Norman
2007-02-09 17:41:25 +00:00
parent f2318eadd2
commit 8ceff1a109
2 changed files with 203 additions and 21 deletions

View File

@@ -30,7 +30,6 @@
extern "C" {
#endif
JNIEXPORT jint JNICALL
Java_com_novell_casa_MiCasa_jmiCASASetCredential
(JNIEnv *env, jobject notused,
@@ -41,6 +40,29 @@ Java_com_novell_casa_MiCasa_jmiCASASetCredential
jstring jsUsername,
jstring jsPassword
)
{
return Java_com_novell_casa_MiCasa_jmiCASASetCredentialEx
(env, notused,
ssFlags,
jsAppSecretID,
jsSharedSecretID,
jUsernameType,
jsUsername,
jsPassword,
SSCS_CRED_TYPE_BASIC_F);
}
JNIEXPORT jint JNICALL
Java_com_novell_casa_MiCasa_jmiCASASetCredentialEx
(JNIEnv *env, jobject notused,
jint ssFlags,
jstring jsAppSecretID,
jstring jsSharedSecretID,
jint jUsernameType,
jstring jsUsername,
jstring jsPassword,
jint jiCredType
)
{
int rcode = 0;
SSCS_SECRET_ID_T appSecretId = {0};
@@ -90,7 +112,7 @@ Java_com_novell_casa_MiCasa_jmiCASASetCredential
ssFlags,
&appSecretId,
&sharedSecretId,
SSCS_CRED_TYPE_BASIC_F,
jiCredType,
&credential,
NULL
);
@@ -99,7 +121,7 @@ Java_com_novell_casa_MiCasa_jmiCASASetCredential
ssFlags,
&appSecretId,
NULL,
SSCS_CRED_TYPE_BASIC_F,
jiCredType,
&credential,
NULL
);
@@ -107,11 +129,6 @@ Java_com_novell_casa_MiCasa_jmiCASASetCredential
return rcode;
}
/*
* Class: com_novell_casa_micasa_SecretStore
* Method: jmiCASAGetCredential
* Signature: (I[B[BILcom/novell/casa/micasa/Secret;)I
*/
JNIEXPORT jint JNICALL
Java_com_novell_casa_MiCasa_jmiCASAGetCredential
(JNIEnv *env, jobject unused,
@@ -119,13 +136,42 @@ Java_com_novell_casa_MiCasa_jmiCASAGetCredential
jstring jsAppSecretID,
jstring jsSharedSecretID,
jint jUsernameType,
jobject jcred)
jobject jcred
)
{
int rcode = 0;
uint32_t iCredType = SSCS_CRED_TYPE_BASIC_F;
return Java_com_novell_casa_MiCasa_jmiCASAGetCredentialEx
(env,
unused,
ssFlags,
jsAppSecretID,
jsSharedSecretID,
jUsernameType,
jcred,
SSCS_CRED_TYPE_BASIC_F);
}
/*
* Class: com_novell_casa_micasa_SecretStore
* Method: jmiCASAGetCredential
* Signature: (I[B[BILcom/novell/casa/micasa/Secret;)I
*/
JNIEXPORT jint JNICALL
Java_com_novell_casa_MiCasa_jmiCASAGetCredentialEx
(JNIEnv *env, jobject unused,
jint ssFlags,
jstring jsAppSecretID,
jstring jsSharedSecretID,
jint jUsernameType,
jobject jcred,
jint jiCredType)
{
int rcode = 0;
SSCS_SECRET_ID_T appSecretId = {0};
SSCS_SECRET_ID_T sharedSecretId = {0};
SSCS_BASIC_CREDENTIAL credential = {0};
uint32_t iCredType = jiCredType;
const char* utf_string;
jboolean isCopy;
@@ -194,7 +240,64 @@ Java_com_novell_casa_MiCasa_jmiCASAGetCredential
return rcode;
}
/*
* Class: com_novell_casa_MiCasa
* Method: jmiCASADeleteCredentialEx
* Signature: (ILjava/lang/String;Ljava/lang/String;I)I
*/
JNIEXPORT jint JNICALL Java_com_novell_casa_MiCasa_jmiCASADeleteCredentialEx
(JNIEnv *env, jobject unused,
jint ssFlags,
jstring jsAppSecretID,
jstring jsSharedSecretID,
jint jiCredType)
{
int rcode = 0;
SSCS_SECRET_ID_T appSecretId = {0};
SSCS_SECRET_ID_T sharedSecretId = {0};
const char* utf_string;
jboolean isCopy;
utf_string = (*env)->GetStringUTFChars(env, jsAppSecretID, &isCopy);
sscs_Utf8Strcpy((char*)appSecretId.id, utf_string);
appSecretId.len = sscs_Utf8Strlen(utf_string) + 1;
if (isCopy == JNI_TRUE)
(*env)->ReleaseStringUTFChars(env, jsAppSecretID, utf_string);
// handle sharedsecretid
if (jsSharedSecretID)
{
utf_string = (*env)->GetStringUTFChars(env, jsSharedSecretID, &isCopy);
sscs_Utf8Strcpy((char*)sharedSecretId.id, utf_string);
sharedSecretId.len = sscs_Utf8Strlen(utf_string)+1;
if (isCopy == JNI_TRUE)
(*env)->ReleaseStringUTFChars(env, jsSharedSecretID, utf_string);
}
// make the call
if (jsSharedSecretID)
rcode = miCASADeleteCredential(
ssFlags,
&appSecretId,
&sharedSecretId,
jiCredType,
NULL);
else
rcode = miCASADeleteCredential(
ssFlags,
&appSecretId,
NULL,
jiCredType,
NULL);
return rcode;
}
/*
* Class: com_novell_casa_micasa_SecretStore
* Method: jmiCASARemoveCredential