Wednesday 27 May 2015

ADF Security : When requested a resource from Protected App



At runtime, the following security sequence is performed for ADF Security protected applications:
1. A user requests an ADF bound ADF Faces page or bounded task flow.
2. The ADF Security layer in ADF checks whether security is enabled for the ADF
application configuration.
3. If security is enabled, the security layer checks whether security is enabled for
authentication only or for authorization, too.
4. If authorization is enforced, ADF Security checks whether an anonymous principal exists and if the permissions granted to anonymous users are sufficient to run the page or task flow. This usually is the case for public pages. However, it is important to note that page and task flow permissions must be explicitly granted to the anonymous role to make them publicly accessible.
5. If page access is not possible with the privileges of the anonymous user account, the framework triggers authentication by redirecting the request to the protected ADF authentication servlet.
6. The servlet delegates the authentication request to the Java EE container.
7. Using Oracle WebLogic Server, the container responds to the request with a login form or by sending a response header that makes the browser display itslogin form.
8. The user-provided credentials are checked against the identity stores that are configured for the WebLogic Server domain. If authentication is successful, the server redirects the request to the authentication servlet. The session now is authenticated and the user Subject contains the user and enterprise group principals.
9. If ADF Security is configured to use a single application entry point for authenticated users, the authentication servlet directs the request to this page. If not, it directs the user to the originally requested page.
10. ADF Security now checks whether the user Subject has permission to run the requested resource. For this, it performs permission checks for the page or task flow in the context of the authenticated user.

Wednesday 25 February 2015

Oracle Sales Cloud Groovy Tips and Tricks : Data Types

Data Types are the fundamentals for any programming language. Since groovy is a programming language for the Java platform, it is following java syntax. Since it is a scripting language, we can achieve more by writing less lines of codes.

In Java:-

Primitive Data Types:-

Data Type
Size
Range
Usage in Real world
byte
8-bit
minimum value of -128 and a maximum value of 127 (inclusive)
byte b= 127;
System.out.println(b); will print 127

short
16- bit
-32,768 and a maximum value of 32,767 (inclusive)

int
 32-bit 
-231 and a maximum value of 231-1

long
 64-bit
 -263 and a maximum value of 263-1

float
32-bit IEEE 754 floating point


double
64-bit IEEE 754 floating point


boolean
1-bit
The boolean data type has only two possible values: true and false

char
16-bit Unicode character
'\u0000' (or 0) and a maximum value of '\uffff' (or 65,535 inclusive).



Data Type
Default Value
byte
0
short
0
int
long
 0L
float
0.0f
double
0.0d
boolean
false
char
'\u0000'






Oracle Sales Cloud Groovy Tips and Tricks

Today I will help you to understand Oracle Sales Cloud Groovy.

What is groovy? 

Groovy is an object-oriented programming language for the Java platform. It is also a standard, dynamic scripting language. The scripts will be dynamically compiled to Java Virtual Machine (JVM) bytecode and executes.

Oracle Sales Cloud application is built by using ADF framework and which supports groovy. CRM Application Composer(Also built by using ADF) provides deep support for Groovy to programmatically manipulate data and other UI components.

Please note that you cannot use all the Java APIs available in the web. There are restrictions due to security issues, So refer to the 'Supported Groovy Classes and Methods' section in groovy manual provided by Oracle before you start.

Reference Documents:-

1. http://docs.oracle.com/cloud/latest/salescs_gs/salescs_customize.htm
2. http://docs.oracle.com/cloud/latest/salescs_gs/CGSAC/index.html