1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.ftp.core.command.access;
21
22 import org.waarp.common.command.NextCommandReply;
23 import org.waarp.common.command.exception.Reply421Exception;
24 import org.waarp.common.command.exception.Reply501Exception;
25 import org.waarp.common.command.exception.Reply530Exception;
26 import org.waarp.ftp.core.command.AbstractCommand;
27
28
29
30
31 public class PASS extends AbstractCommand {
32 @Override
33 public final void exec()
34 throws Reply421Exception, Reply501Exception, Reply530Exception {
35 if (!hasArg()) {
36 invalidCurrentCommand();
37 throw new Reply501Exception("Need password as argument");
38 }
39 final String password = getArg();
40 if (getSession().getAuth() == null) {
41 getSession().reinitFtpAuth();
42 throw new Reply530Exception("No user specified");
43 }
44 final NextCommandReply nextCommandReply;
45 try {
46 nextCommandReply = getSession().getAuth().setPassword(password);
47 } catch (final Reply530Exception e) {
48 getSession().reinitFtpAuth();
49 throw e;
50 }
51 setExtraNextCommand(nextCommandReply.command);
52 getSession().setReplyCode(nextCommandReply.reply, nextCommandReply.message);
53 }
54
55 }