src.com.ibm.as400.access.SignonGenAuthTokenRequestDS Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400-jdk9 Show documentation
Show all versions of jt400-jdk9 Show documentation
The Open Source version of the IBM Toolbox for Java
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: SignonGenAuthTokenRequestDS.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 2003-2007 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.as400.access;
import java.io.IOException;
import java.io.OutputStream;
// The SignonGenAuthTokenRequestDS class represents the data stream for the 'Generate authentication token on behalf of another user' request.
class SignonGenAuthTokenRequestDS extends ClientAccessDataStream
{
SignonGenAuthTokenRequestDS(byte[] userIdentity, int profileTokenType, int profileTokenTimeout, int serverLevel)
{
super(new byte[51 + userIdentity.length + (serverLevel < 5 ? 0 : 7)]);
setLength(data_.length);
// setHeaderID(0x0000);
setServerID(0xE009);
// setCSInstance(0x00000000);
// setCorrelation(0x00000000);
setTemplateLen(0x0001);
setReqRepID(0x7008);
// Authentication token return type.
data_[20] = 0x01; // 0x01 - profile token.
// Profile token type.
set32bit(7, 21);
set16bit(0x1116, 25);
data_[27] = (byte)(0xF0 | profileTokenType);
// Experation interval.
set32bit(10, 28);
set16bit(0x1117, 32);
set32bit(profileTokenTimeout, 34);
// Type of user identity.
set32bit(7, 38);
set16bit(0x1126, 42);
data_[44] = (byte)0xF1;
// Set user identity.
// LL
set32bit(6 + userIdentity.length, 45);
// CP
set16bit(0x1127, 49);
// Data.
System.arraycopy(userIdentity, 0, data_, 51, userIdentity.length);
if (serverLevel >= 5)
{
int offset = 51 + userIdentity.length;
// Set return error messages.
// LL
set32bit(7, offset);
// CP
set16bit(0x1128, offset + 4);
// Data.
data_[offset + 6] = 0x01;
}
}
void write(OutputStream out) throws IOException
{
if (Trace.traceOn_) Trace.log(Trace.DIAGNOSTIC, "Sending generate authentication token on behalf of another user request...");
super.write(out);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy