public class SIDCacheImpl extends Object implements SidResolver
Constructor and Description |
---|
SIDCacheImpl(CIFSContext baseContext) |
Modifier and Type | Method and Description |
---|---|
SID[] |
getGroupMemberSids(CIFSContext tc,
String authorityServerName,
SID domsid,
int rid,
int flags) |
Map<SID,List<SID>> |
getLocalGroupsMap(CIFSContext tc,
String authorityServerName,
int flags)
This specialized method returns a Map of users and local groups for the
target server where keys are SIDs representing an account and each value
is an ArrayList of SIDs represents the local groups that the account is
a member of.
|
SID |
getServerSid(CIFSContext tc,
String server) |
void |
resolveSids(CIFSContext tc,
String authorityServerName,
SID[] sids)
Resolve an array of SIDs using a cache and at most one MSRPC request.
|
void |
resolveSids(CIFSContext tc,
String authorityServerName,
SID[] sids,
int offset,
int length)
Resolve part of an array of SIDs using a cache and at most one MSRPC request.
|
public SIDCacheImpl(CIFSContext baseContext)
baseContext
- public void resolveSids(CIFSContext tc, String authorityServerName, SID[] sids, int offset, int length) throws CIFSException
SidResolver
resolveSids
in interface SidResolver
CIFSException
public void resolveSids(CIFSContext tc, String authorityServerName, SID[] sids) throws CIFSException
This method will attempt to resolve SIDs using a cache and cache the results of any SIDs that required resolving with the authority. SID cache entries are currently not expired because under normal circumstances SID information never changes.
resolveSids
in interface SidResolver
authorityServerName
- The hostname of the server that should be queried. For maximum efficiency this should be the hostname
of a domain controller however a member server will work as well and a domain controller may not
return names for SIDs corresponding to local accounts for which the domain controller is not an
authority.tc
- The context that should be used to communicate with the named server.sids
- The SIDs that should be resolved. After this function is called, the names associated with the SIDs
may be queried with the toDisplayString, getDomainName, and getAccountName
methods.CIFSException
public SID getServerSid(CIFSContext tc, String server) throws CIFSException
getServerSid
in interface SidResolver
CIFSException
public SID[] getGroupMemberSids(CIFSContext tc, String authorityServerName, SID domsid, int rid, int flags) throws CIFSException
getGroupMemberSids
in interface SidResolver
CIFSException
public Map<SID,List<SID>> getLocalGroupsMap(CIFSContext tc, String authorityServerName, int flags) throws CIFSException
getLocalGroupsMap
in interface SidResolver
tc
- The context to useauthorityServerName
- The server from which the local groups will be queried.flags
- Flags that control the behavior of the operation. When all
name associated with SIDs will be required, the SID_FLAG_RESOLVE_SIDS
flag should be used which causes all group member SIDs to be resolved
together in a single more efficient operation.CIFSException
SidResolver.getLocalGroupsMap(jcifs.CIFSContext, java.lang.String, int)
Copyright © 2017. All rights reserved.