Java源码示例:org.apache.sshd.common.io.IoSession
示例1
@Test
void authenticate() {
ServerSession session = Mockito.mock(ServerSession.class);
IoSession io = Mockito.mock(IoSession.class);
Mockito.when(session.getIoSession()).thenReturn(io);
Mockito.when(ctx.getBeansOfType(any())).thenReturn(Collections.singletonMap("sec", sec));
ArgumentCaptor<Object> captor = ArgumentCaptor.forClass(Object.class);
Mockito.when(io.setAttribute(eq(AUTHENTICATION_ATTRIBUTE), captor.capture())).thenReturn(null);
SshShellSecurityAuthenticationProvider provider = new SshShellSecurityAuthenticationProvider(ctx, null);
provider.init();
Mockito.when(sec.authenticate(any())).thenReturn(
new UsernamePasswordAuthenticationToken("principal", "credentials",
Collections.singletonList(new SimpleGrantedAuthority("USER"))));
assertTrue(provider.authenticate("user", "pass", session));
SshAuthentication auth = (SshAuthentication) captor.getValue();
assertEquals("principal", auth.getPrincipal());
assertEquals("credentials", auth.getCredentials());
assertEquals(1, auth.getAuthorities().size());
assertNull(auth.getDetails());
// fail auth
Mockito.when(sec.authenticate(any())).thenThrow(new BadCredentialsException("[MOCK]"));
assertFalse(provider.authenticate("user", "pass", session));
}
示例2
@Test
public void testBuildSshRequestInfoObj() throws ArtifactNotFoundException, IOException,
ArtifactMetaDataParseFailureException, ParseException {
IoSession ioSession = Mockito.mock(IoSession.class);
Mockito.when(ioSession.getRemoteAddress()).thenReturn(new InetSocketAddress("10.0.0.1", 9999));
ServerSession session = Mockito.mock(ServerSession.class);
Mockito.when(session.getUsername()).thenReturn("screwdrv");
Mockito.when(session.getIoSession()).thenReturn(ioSession);
SshRequestInfo request =
new SshRequestInfo.Builder(session).setStartTimestamp(1411455384909L)
.setMethod(SshRequestStatus.CREATED.getReasonPhrase())
.setStatus(SshRequestStatus.CREATED.getStatusCode()).setExitValue(0)
.setRepoName("maven-local-release").setPath("/com/yahoo/sshd/util/Utils.java")
.setSize(1024000L).build();
Assert.assertEquals(request.getStartTimestamp(), 1411455384909L);
Assert.assertEquals(request.getRemoteAddr(), "10.0.0.1");
Assert.assertEquals(request.getRepoName(), "maven-local-release");
Assert.assertEquals(request.getRequestPath(), "/com/yahoo/sshd/util/Utils.java");
Assert.assertEquals(request.getStatus(), 201);
Assert.assertEquals(request.getExitValue(), 0);
Assert.assertEquals(request.getMethod(), "PUT");
Assert.assertEquals(request.getUserName(), "screwdrv");
}
示例3
@Test
public void testObjectEqual() throws ArtifactNotFoundException, IOException, ArtifactMetaDataParseFailureException,
ParseException {
IoSession ioSession = Mockito.mock(IoSession.class);
Mockito.when(ioSession.getRemoteAddress()).thenReturn(new InetSocketAddress("10.0.0.1", 9999));
ServerSession session = Mockito.mock(ServerSession.class);
Mockito.when(session.getUsername()).thenReturn("screwdrv");
Mockito.when(session.getIoSession()).thenReturn(ioSession);
SshRequestInfo request1 =
new SshRequestInfo.Builder(session).setStartTimestamp(1411455384909L)
.setMethod(SshRequestStatus.CREATED.getReasonPhrase())
.setStatus(SshRequestStatus.CREATED.getStatusCode()).setExitValue(0)
.setRepoName("maven-local-release").setPath("/com/yahoo/sshd/util/Utils.java")
.setSize(1024000L).build();
SshRequestInfo request2 =
new SshRequestInfo.Builder(session).setStartTimestamp(1411455384909L)
.setMethod(SshRequestStatus.OK.getReasonPhrase())
.setStatus(SshRequestStatus.OK.getStatusCode()).setExitValue(0)
.setRepoName("maven-local-release").setPath("/com/yahoo/sshd/util/Utils.java")
.setSize(1024000L).build();
Assert.assertFalse(request1.equals(request2));
}
示例4
@Before
public void setUp() throws Exception {
sshd = setupTestServer();
sshd.setSessionFactory(new SessionFactory(sshd) {
@Override
protected ServerSessionImpl doCreateSession(IoSession ioSession) throws Exception {
return new TestSession(getServer(), ioSession);
}
});
sshd.start();
port = sshd.getPort();
}
示例5
public static ChannelSession mockChannelSession(Long id) {
ChannelSession session = mock(ChannelSession.class);
ServerSession serverSession = mock(ServerSession.class);
when(session.getSession()).thenReturn(serverSession);
IoSession ioSession = mock(IoSession.class);
when(serverSession.getIoSession()).thenReturn(ioSession);
when(ioSession.getId()).thenReturn(id);
return session;
}
示例6
@Override
public void sessionCreated(IoHandler handler, IoSession session) throws Exception {
context.dispatch(v -> {
try {
super.sessionCreated(handler, session);
} catch (Exception e) {
throw new VertxException(e);
}
});
}
示例7
@Override
public void sessionClosed(IoHandler handler, IoSession session) throws Exception {
context.dispatch(v -> {
try {
super.sessionClosed(handler, session);
} catch (Exception e) {
throw new VertxException(e);
}
});
}
示例8
@Override
public void messageReceived(IoHandler handler, IoSession session, org.apache.sshd.common.util.Readable message) throws Exception {
context.dispatch(v -> {
try {
super.messageReceived(handler, session, message);
} catch (Exception e) {
throw new VertxException(e);
}
});
}
示例9
@Before
public void setUp() throws Exception {
sshd = setupTestServer();
sshd.setSessionFactory(new SessionFactory(sshd) {
@Override
protected ServerSessionImpl doCreateSession(IoSession ioSession) throws Exception {
return new TestSession(getServer(), ioSession);
}
});
sshd.start();
port = sshd.getPort();
}
示例10
@Test
public void testDefault() throws Exception {
CountDownLatch wakeupLatch = new CountDownLatch(1);
LocalUserPKAuthenticator lpka = new LocalUserPKAuthenticator(wakeupLatch) {
@Override
String getUserName() {
return "areese";
}
@Override
String getUserHome() {
return "src/test/resources/MultiUserPKAuthenticator/home/areese/";
}
};
lpka.start();
ServerSession session = Mockito.mock(ServerSession.class);
IoSession ioSession = Mockito.mock(IoSession.class);
Mockito.when(session.getIoSession()).thenReturn(ioSession);
Map<PublicKey, AuthorizedKey> publicKeys = null;
try (FileInputStream karafFis = new FileInputStream(lpka.getAuthorizedKeysPath())) {
publicKeys =
KarafPublickeyAuthenticator.parseAuthorizedKeys(lpka.getAuthorizedKeysPath()
.getAbsolutePath(), karafFis);
}
for (PublicKey publicKey : publicKeys.keySet()) {
lpka.authenticate("areese", publicKey, session);
}
}
示例11
@Test(dataProvider = "matchedKeys")
public void testAllKeys(MultiUserPKAuthenticator mupka, PublicKey publicKey, String user, String fileName)
throws NoSuchAlgorithmException, InvalidKeySpecException, IOException {
// now for all of these public keys ensure that "test", auths against them
ServerSession session = Mockito.mock(ServerSession.class);
IoSession ioSession = Mockito.mock(IoSession.class);
Mockito.when(session.getIoSession()).thenReturn(ioSession);
Assert.assertTrue(mupka.authenticate(user, publicKey, session), fileName);
Assert.assertFalse(mupka.authenticate("areese", publicKey, session), fileName);
}
示例12
@Test(dataProvider = "misMatchedKeys")
public void testBadKeys(MultiUserPKAuthenticator mupka, PublicKey publicKey, String user, String fileName)
throws NoSuchAlgorithmException, InvalidKeySpecException, IOException {
// now for all of these public keys ensure that "test", can auth against them
ServerSession session = Mockito.mock(ServerSession.class);
IoSession ioSession = Mockito.mock(IoSession.class);
Mockito.when(session.getIoSession()).thenReturn(ioSession);
Assert.assertFalse(mupka.authenticate(user, publicKey, session), fileName);
Assert.assertFalse(mupka.authenticate("areese", publicKey, session), fileName);
}
示例13
public void sessionCreated(IoHandler handler, IoSession session) throws Exception {
handler.sessionCreated(session);
}
示例14
public void sessionClosed(IoHandler handler, IoSession session) throws Exception {
handler.sessionClosed(session);
}
示例15
public void messageReceived(IoHandler handler, IoSession session, Readable message) throws Exception {
handler.messageReceived(session, message);
}
示例16
@Override
public Map<Long, IoSession> getManagedSessions() {
return ioService.sessions;
}
示例17
@Override
public Map<Long, IoSession> getManagedSessions() {
return null;
}
示例18
public TestSession(ServerFactoryManager server, IoSession ioSession) throws Exception {
super(server, ioSession);
}
示例19
public void sessionCreated(IoHandler handler, IoSession session) throws Exception {
handler.sessionCreated(session);
}
示例20
public void sessionClosed(IoHandler handler, IoSession session) throws Exception {
handler.sessionClosed(session);
}
示例21
public void messageReceived(IoHandler handler, IoSession session, Readable message) throws Exception {
handler.messageReceived(session, message);
}
示例22
@Override
public Map<Long, IoSession> getManagedSessions() {
return ioService.sessions;
}
示例23
@Override
public Map<Long, IoSession> getManagedSessions() {
return null;
}
示例24
public void sessionCreated(IoHandler handler, IoSession session) throws Exception {
handler.sessionCreated(session);
}
示例25
public void sessionClosed(IoHandler handler, IoSession session) throws Exception {
handler.sessionClosed(session);
}
示例26
public void messageReceived(IoHandler handler, IoSession session, Readable message) throws Exception {
handler.messageReceived(session, message);
}
示例27
@Override
public Map<Long, IoSession> getManagedSessions() {
return ioService.sessions;
}
示例28
@Override
public Map<Long, IoSession> getManagedSessions() {
return null;
}
示例29
public TestSession(ServerFactoryManager server, IoSession ioSession) throws Exception {
super(server, ioSession);
}
示例30
@Override
public void sessionCreated(final IoSession session) throws Exception {
throw new SshException("Tcpip forwarding request denied by server");
}