Skip to content

Commit

Permalink
Merge pull request #13 from qtc-de/develop
Browse files Browse the repository at this point in the history
Prepare v3.2.0 release
  • Loading branch information
qtc-de authored Apr 2, 2021
2 parents 20dde4e + c71c9db commit 2c19ac7
Show file tree
Hide file tree
Showing 27 changed files with 917 additions and 445 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* The ``guess`` operation now also lists methods for known remote objects
* These are obtained via reflection, not by guessing
* You can force guessing anyway by using ``--force-guessing``
* Method arguments are not marshalled correctly (previously, always writeObject was used)
* Method arguments are now marshalled correctly (previously, always writeObject was used)


## [3.1.1] - Feb 16, 2021
Expand Down
6 changes: 6 additions & 0 deletions src/de/qtc/rmg/Starter.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
import de.qtc.rmg.operations.Operation;
import de.qtc.rmg.utils.RMGUtils;

/**
* The Starter class contains the entrypoint of remote-method-guesser. It is responsible
* for creating a Dispatcher object, that is used to dispatch the actual method call.
*
* @author Tobias Neitzel (@qtc_de)
*/
public class Starter {

public static void main(String[] argv) {
Expand Down
19 changes: 17 additions & 2 deletions src/de/qtc/rmg/annotations/Parameters.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,24 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* remote-method-guesser uses commons-cli for argument parsing. While being a useful
* library, it misses support module based argument parsing and some other features that
* are available in more modern argument parsers. Nonetheless, currently we still stick to
* it and the Parameters annotation class is used to implement some additional argument
* checking.
*
* Each operation supported by the Dispatcher class can be marked by this annotation.
* The count attribute specifies how many positional arguments the corresponding operation
* expects. The requires attribute can be used to specify which options are required for the
* action. If only one action of a particular set is required (e.g. --bound-name or --objid),
* the following syntax can be used: "--bound-name|--objid".
*
* @author Tobias Neitzel (@qtc_de)
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Parameters {
int count() default 0;
String[] requires() default {};
int count() default 0;
String[] requires() default {};
}
8 changes: 8 additions & 0 deletions src/de/qtc/rmg/exceptions/MalformedPluginException.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
package de.qtc.rmg.exceptions;

/**
* MalformedPluginExceptions are thrown then an rmg plugin was specified on the command
* line that does not satisfy the plugin requirements. Usually that happens then the
* Manifest of the corresponding plugin does not contain a reference to the rmg plugin
* class.
*
* @author Tobias Neitzel (@qtc_de)
*/
public class MalformedPluginException extends Exception {

private static final long serialVersionUID = 1L;
Expand Down
4 changes: 4 additions & 0 deletions src/de/qtc/rmg/exceptions/UnexpectedCharacterException.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
* filtering in this regard is very strict, but can be disabled by using the
* --trusted switch after reviewing the corresponding names.
*
* The reason for this filtering is simple: rmg uses the bound names from the
* RMI registry within of the file names for the sample files. Bound names can
* contain arbitrary characters, which includes e.g. path traversal sequences.
*
* @author Tobias Neitzel (@qtc_de)
*/
@SuppressWarnings("serial")
Expand Down
Loading

0 comments on commit 2c19ac7

Please sign in to comment.