コード例 #1
0
JNIEXPORT jboolean JNICALL Java_com_cenqua_shaj_Win32Authenticator_checkGroupMembershipImpl
  (JNIEnv * jvm, jclass jThisClass, jstring aDomain, jstring aUsername, jstring aGroup, jobject jLog)
{
    const jchar* wc_domain;
    const jchar* wc_username;
    const jchar* wc_group;
    loginfo_t loginfo;
    jboolean result;

    HANDLE token = NULL;
    BOOL status = 1;

    loginfo = shaj_init_logger(jvm, jLog);

    wc_domain = (aDomain == NULL) ? NULL : (*jvm)->GetStringChars(jvm, aDomain, NULL);
    wc_username = (*jvm)->GetStringChars(jvm, aUsername, NULL);
    wc_group = (*jvm)->GetStringChars(jvm, aGroup, NULL);

    status = shaj_memberOfGroup(wc_domain, wc_username, wc_group, TRUE, TRUE, TRUE, &loginfo);
    result =  status ? JNI_TRUE : JNI_FALSE;

    shaj_log_debug(&loginfo, "checking group for domain=%ws user=%ws group=%ws => %d",
                      (wc_domain==NULL)? L"(NULL)" : wc_domain, wc_username, wc_group, (int) result);
    
    if (aDomain != NULL) {
        (*jvm)->ReleaseStringChars(jvm, aDomain, wc_domain);
    }
    
    (*jvm)->ReleaseStringChars(jvm, aUsername, wc_username);
    (*jvm)->ReleaseStringChars(jvm, aGroup, wc_group);
    
    return result;
}
コード例 #2
0
JNIEXPORT jboolean JNICALL Java_com_cenqua_shaj_Win32Authenticator_checkPasswordImpl
  (JNIEnv * jvm, jclass jThisClass, jstring aDomain, jstring aUsername, jstring aPassword, jobject jLog)
{
    const char* c_domain;
    const char* c_username;
    const char* c_password;
    loginfo_t loginfo;
    jboolean result;

    HANDLE token = NULL;
    BOOL status = 1;

    loginfo = shaj_init_logger(jvm, jLog);

    c_domain = (aDomain == NULL) ? NULL : (*jvm)->GetStringUTFChars(jvm, aDomain, NULL);
    c_username = (*jvm)->GetStringUTFChars(jvm, aUsername, NULL);
    c_password = (*jvm)->GetStringUTFChars(jvm, aPassword, NULL);

    status = SSPLogonUser((char*)c_domain, (char*)c_username, (char*)c_password, &loginfo);
    result =  status ? JNI_TRUE : JNI_FALSE;

    shaj_log_debug(&loginfo, "checking password for domain=%s user=%s => %d",
                      (c_domain==NULL)? "(NULL)" : c_domain, c_username, (int) result);
    
    if (aDomain != NULL) {
        (*jvm)->ReleaseStringUTFChars(jvm, aDomain, c_domain);
    }
    
    (*jvm)->ReleaseStringUTFChars(jvm, aUsername, c_username);
    (*jvm)->ReleaseStringUTFChars(jvm, aPassword, c_password);
    
    return result;
}
コード例 #3
0
ファイル: shaj_jni_impl.c プロジェクト: akilxx/rj-core
JNIEXPORT jboolean JNICALL Java_com_cenqua_shaj_PAMAuthenticator_checkPasswordImpl
  (JNIEnv *jvm, jclass jThisClass, jstring aService, jstring aUsername, jstring aPassword, jobject jLog)
{
    const char* c_service;
    const char* c_username;
    const char* c_password;
    jboolean result;
    loginfo_t loginfo;
    
    loginfo = shaj_init_logger(jvm, jLog);

    //TODO do a check for username=="" or null
    //TODO what is the correct "default" servicename if null?
    
    c_service = (*jvm)->GetStringUTFChars(jvm, aService, NULL);
    c_username = (*jvm)->GetStringUTFChars(jvm, aUsername, NULL);
    c_password = (*jvm)->GetStringUTFChars(jvm, aPassword, NULL);

    result = shaj_chkpasswd_pam(c_service, c_username, c_password, &loginfo);
    
    (*jvm)->ReleaseStringUTFChars(jvm, aService, c_service);
    (*jvm)->ReleaseStringUTFChars(jvm, aUsername, c_username);
    (*jvm)->ReleaseStringUTFChars(jvm, aPassword, c_password);
    
    return result;
}
コード例 #4
0
JNIEXPORT jboolean JNICALL Java_com_cenqua_shaj_Shaj_initlibrary
  (JNIEnv * jvm, jclass jThisClass, jobject jLog)
{
    loginfo_t loginfo;

    if (HAVE_LOADED == JNI_TRUE) {
        return HAVE_LOADED_RESULT;
    }
    
    loginfo = shaj_init_logger(jvm, jLog);
    
    HAVE_LOADED_RESULT = shaj_init(&loginfo);
    HAVE_LOADED = JNI_TRUE;

    return HAVE_LOADED_RESULT;
}
コード例 #5
0
ファイル: shaj_jni_impl.c プロジェクト: akilxx/rj-core
JNIEXPORT jboolean JNICALL Java_com_cenqua_shaj_PAMAuthenticator_checkGroupMembershipImpl
  (JNIEnv *jvm, jclass jThisClass, jstring aUsername, jstring aGroup, jobject jLog)
{
    const char* c_username;
    const char* c_group;
    jboolean result;
    loginfo_t loginfo;
    
    loginfo = shaj_init_logger(jvm, jLog);

    c_username = (*jvm)->GetStringUTFChars(jvm, aUsername, NULL);
    c_group = (*jvm)->GetStringUTFChars(jvm, aGroup, NULL);

    result = shaj_memberOfGroup(c_username, c_group, &loginfo);
    
    (*jvm)->ReleaseStringUTFChars(jvm, aUsername, c_username);
    (*jvm)->ReleaseStringUTFChars(jvm, aGroup, c_group);
    
    return result;
}