Top Description Fields Constructors Methods
groovy.lang

public Class GroovyCodeSource

extends Object
Class Inheritance
Imports
groovy.security.GroovyCodeSourcePermission, groovy.util.CharsetToolkit, org.codehaus.groovy.runtime.IOGroovyMethods, .ResourceGroovyMethods, java.io.File, .FileNotFoundException, .IOException, .Reader, java.net.MalformedURLException, .URI, .URL, .URLConnection, java.security.AccessController, .CodeSource, .PrivilegedActionException, .PrivilegedExceptionAction, java.security.cert.Certificate, java.util.Objects

CodeSource wrapper class that allows specific security policies to be associated with a class compiled from groovy source.

Field Summary

Modifier and TypeField and Description
private boolean
pack-priv Certificate[]
certs

The certificates used to sign the items from the codesource

private CodeSource
codeSource

The codeSource to be given the generated class.

private File
private String
name

The name given to the generated class

private String
scriptText

The groovy source to be compiled and turned into a class

private URL

Constructor Summary

AccessConstructor and Description
public
GroovyCodeSource(String script, String name, String codeBase)

public
GroovyCodeSource(Reader reader, String name, String codeBase)

Construct a GroovyCodeSource for an inputStream of groovyCode that has an unknown provenance -- meaning it didn't come from a File or a URL (e.g. a String).

public
GroovyCodeSource(final File infile, final String encoding)

public
GroovyCodeSource(final File
the file to create a GroovyCodeSource for.
infile
)

public
public

Method Summary

Modifier and TypeMethod and Description
private static CodeSource
createCodeSource(final String codeBase)

public boolean
equals(Object
the reference object with which to compare.
o
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.
public CodeSource
private static String
getContentEncoding(URL url)

TODO(jwagenleitner): remove or fix in future release According to the spec getContentEncoding() returns the Content-Encoding HTTP Header which typically carries values such as 'gzip' or 'deflate' and is not the character set encoding.

public File
public String
public String
public URL
public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for the object.
public boolean
public void
setCachable(boolean b)

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAlltoStringwaitwaitwait

Field Detail

cachableback to summary
private boolean cachable
certsback to summary
pack-priv Certificate[] certs

The certificates used to sign the items from the codesource

codeSourceback to summary
private CodeSource codeSource

The codeSource to be given the generated class. This can be used by policy file grants to administer security.

fileback to summary
private File file
nameback to summary
private String name

The name given to the generated class

scriptTextback to summary
private String scriptText

The groovy source to be compiled and turned into a class

urlback to summary
private URL url

Constructor Detail

GroovyCodeSourceback to summary
public GroovyCodeSource(String script, String name, String codeBase)
GroovyCodeSourceback to summary
public GroovyCodeSource(Reader reader, String name, String codeBase)

Construct a GroovyCodeSource for an inputStream of groovyCode that has an unknown provenance -- meaning it didn't come from a File or a URL (e.g. a String). The supplied codeBase will be used to construct a File URL that should match up with a java Policy entry that determines the grants to be associated with the class that will be built from the InputStream.

The permission groovy.security.GroovyCodeSourcePermission will be used to determine if the given codeBase may be specified. That is, the current Policy set must have a GroovyCodeSourcePermission that implies the codeBase, or an exception will be thrown. This is to prevent callers from hijacking existing codeBase policy entries unless explicitly authorized by the user.

GroovyCodeSourceback to summary
public GroovyCodeSource(final File infile, final String encoding) throws IOException
GroovyCodeSourceback to summary
public GroovyCodeSource(final File infile) throws IOException
Parameters
infile:File

the file to create a GroovyCodeSource for.

Exceptions
IOException:
if an issue arises opening and reading the file.
GroovyCodeSourceback to summary
public GroovyCodeSource(URI uri) throws IOException
GroovyCodeSourceback to summary
public GroovyCodeSource(URL url)

Method Detail

createCodeSourceback to summary
private static CodeSource createCodeSource(final String codeBase)
equalsback to summary
public boolean equals(Object o)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
o:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
getCodeSourceback to summary
public CodeSource getCodeSource()
getContentEncodingback to summary
private static String getContentEncoding(URL url) throws IOException

TODO(jwagenleitner): remove or fix in future release According to the spec getContentEncoding() returns the Content-Encoding HTTP Header which typically carries values such as 'gzip' or 'deflate' and is not the character set encoding. For compatibility in 2.4.x, this behavior is retained but should be removed or fixed (parse charset from Content-Type header) in future releases. see GROOVY-8056 and https://github.com/apache/groovy/pull/500

getFileback to summary
public File getFile()
getNameback to summary
public String getName()
getScriptTextback to summary
public String getScriptText()
getURLback to summary
public URL getURL()
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object.

Annotations
@Override
isCachableback to summary
public boolean isCachable()
setCachableback to summary
public void setCachable(boolean b)