//export Java_io_v_v23_security_VSecurity_nativeGetSigningBlessingNames func Java_io_v_v23_security_VSecurity_nativeGetSigningBlessingNames(jenv *C.JNIEnv, jVSecurityClass C.jclass, jCtx C.jobject, jPrincipal C.jobject, jBlessings C.jobject) C.jobjectArray { env := jutil.Env(uintptr(unsafe.Pointer(jenv))) ctx, _, err := jcontext.GoContext(env, jutil.Object(uintptr(unsafe.Pointer(jCtx)))) if err != nil { jutil.JThrowV(env, err) return nil } principal, err := GoPrincipal(env, jutil.Object(uintptr(unsafe.Pointer(jPrincipal)))) if err != nil { jutil.JThrowV(env, err) return nil } blessings, err := GoBlessings(env, jutil.Object(uintptr(unsafe.Pointer(jBlessings)))) if err != nil { jutil.JThrowV(env, err) return nil } blessingStrs, _ := security.SigningBlessingNames(ctx, principal, blessings) jArr, err := jutil.JStringArray(env, blessingStrs) if err != nil { jutil.JThrowV(env, err) return nil } return C.jobjectArray(unsafe.Pointer(jArr)) }
//export Java_io_v_v23_security_CallImpl_nativeMethodTags func Java_io_v_v23_security_CallImpl_nativeMethodTags(jenv *C.JNIEnv, jCall C.jobject, goRef C.jlong) C.jobjectArray { env := jutil.Env(uintptr(unsafe.Pointer(jenv))) tags := (*(*security.Call)(jutil.GoRefValue(jutil.Ref(goRef)))).MethodTags() jTags, err := jutil.JVDLValueArray(env, tags) if err != nil { jutil.JThrowV(env, err) return nil } return C.jobjectArray(unsafe.Pointer(jTags)) }
// GoObjectArray converts a Java object array to a Go slice of Java objects. func GoObjectArray(env Env, arr Object) ([]Object, error) { if arr.IsNull() { return nil, nil } length := int(C.GetArrayLength(env.value(), C.jarray(arr.value()))) ret := make([]Object, length) for i := 0; i < length; i++ { ret[i] = Object(uintptr(unsafe.Pointer(C.GetObjectArrayElement(env.value(), C.jobjectArray(arr.value()), C.jsize(i))))) if err := JExceptionMsg(env); err != nil { // Out-of-bounds index. return nil, err } } return ret, nil }
//export Java_io_v_impl_google_rpc_AddressChooserImpl_nativeChoose func Java_io_v_impl_google_rpc_AddressChooserImpl_nativeChoose(jenv *C.JNIEnv, jAddressChooser C.jobject, goRef C.jlong, jProtocol C.jstring, jCandidates C.jobjectArray) C.jobjectArray { env := jutil.Env(uintptr(unsafe.Pointer(jenv))) protocol := jutil.GoString(env, jutil.Object(uintptr(unsafe.Pointer(jProtocol)))) candidates, err := GoNetworkAddressArray(env, jutil.Object(uintptr(unsafe.Pointer(jCandidates)))) if err != nil { jutil.JThrowV(env, err) return nil } addrs, err := (*(*rpc.AddressChooser)(jutil.GoRefValue(jutil.Ref(goRef)))).ChooseAddresses(protocol, candidates) if err != nil { jutil.JThrowV(env, err) return nil } jAddrs, err := JavaNetworkAddressArray(env, addrs) if err != nil { jutil.JThrowV(env, err) return nil } return C.jobjectArray(unsafe.Pointer(jAddrs)) }
//export Java_io_v_v23_security_VSecurity_nativeGetLocalBlessingNames func Java_io_v_v23_security_VSecurity_nativeGetLocalBlessingNames(jenv *C.JNIEnv, jVSecurityClass C.jclass, jCtx C.jobject, jCall C.jobject) C.jobjectArray { env := jutil.Env(uintptr(unsafe.Pointer(jenv))) ctx, _, err := jcontext.GoContext(env, jutil.Object(uintptr(unsafe.Pointer(jCtx)))) if err != nil { jutil.JThrowV(env, err) return nil } call, err := GoCall(env, jutil.Object(uintptr(unsafe.Pointer(jCall)))) if err != nil { jutil.JThrowV(env, err) return nil } blessingStrs := security.LocalBlessingNames(ctx, call) jArr, err := jutil.JStringArray(env, blessingStrs) if err != nil { jutil.JThrowV(env, err) return nil } return C.jobjectArray(unsafe.Pointer(jArr)) }