Problem using webcache with pure jsp report
Hello,
I am not sure if this is the right forum because my problem affects to 3 products
(reports, portal + webcache)
I need to cache a pure oracle reports jsp report.
I included some reports in portal reports security (Portal -> Builder -> Administer -> Reports Security)
http://is.domain:7778/pls/portal/PORTAL.REP_NAME.show
This report is secured and only accessible for granted persons over portal.
Now I also want to cache those reports using webcache.
But there is a problem. As soon as this report is cached, there is no security anymore.
The former secured report is accessible to every user who knows the URL as long the report is in webcache.
There seems to be no SSO Check anymore.
But this check is necessary.
How is it possible to cache this pure jsp report and also have SSO feature as every portal page ?
Regards,
Frank
Hi Frank,
You may want to contact Oracle Support for detailed configuration procedures on this.
In a nutshell, Reports provides some level of default caching. You can take advantage of that. The Reports Administrator's Guide provides some info on that.
Regards,
Web Cache team
Similar Messages
-
Problems using GET method in JSP
Hi,
I had some problems using GET method in JSP.
I'm using Apache web server 1.3 and Tomcat 3.3.1 in windows 2000.
And I'm using language English and Korean.
When I send messages using POST method, all is good
But when I send message using GET method, English is good, but Korean is not good.
I tried to encode using
URLEncode.encode(str, "UTF-8")
and decoding it using
URLDecode.decode(request.getParameter(tag), "UTF-8")
but it didn't work.
How can I receive request including Korean using GET method in JSP?
If anyone have solutions, please let me know.
thanks.Hi,
I had some problems using GET method in JSP.
I'm using Apache web server 1.3 and Tomcat 3.3.1 in
windows 2000.
And I'm using language English and Korean.
When I send messages using POST method, all is good
But when I send message using GET method, English is
good, but Korean is not good.
I tried to encode using
URLEncode.encode(str, "UTF-8")
and decoding it using
URLDecode.decode(request.getParameter(tag), "UTF-8")
but it didn't work.
How can I receive request including Korean using GET
method in JSP?
If anyone have solutions, please let me know.
thanks.This problem appears, when one use UTF-16 encoding in JSP - am I right?
If so there are two solutions:
1) Temporary: Use "UTF-8" - or any other 8 bit encoding scheme and
encode Korean symbols with "&1234;" kind of escapes - though it
may not work
2) Absolute: get my piece of code, which I have managed to write
just a month ago resolving absolutely similar problem with UTF-16
in code using Chinese/Russian/English encodings
But I wouldn't say that it's costs 10 DDs :) - it's much more
expensive... So try 1st variant if it wouldn't help - let me know.
I'll figure :)
Paul -
Problem Using Multiple With Statements
I'm having a problem using multiple WITH statements. Oracle seems to be expecting a SELECT statement after the first one. I need two in order to reference stuff from the second one in another query.
Here's my code:
<code>
WITH calculate_terms AS (SELECT robinst_current_term_code,
CASE
WHEN robinst_current_term_code LIKE '%60' THEN robinst_current_term_code - '40'
WHEN robinst_current_term_code LIKE '%20' THEN robinst_current_term_code - '100'
END first_term,
CASE
WHEN robinst_current_term_code LIKE '%60' THEN robinst_current_term_code - '100'
WHEN robinst_current_term_code LIKE '%20' THEN robinst_current_term_code - '160'
END second_term
FROM robinst
WHERE robinst_aidy_code = :aidy)
/*Use terms from calculate_terms to generate attendance periods*/
WITH gen_attn_terms AS
SELECT
CASE
WHEN first_term LIKE '%60' THEN 'Fall '||substr(first_term,0,4)
WHEN first_term LIKE '%20' THEN 'Spring '||substr(first_term,0,4)
END first_attn_period,
CASE
WHEN second_term LIKE '%60' THEN 'Fall '||substr(second_term,0,4)
WHEN second_term LIKE '%20' THEN 'Spring '||substr(second_term,0,4)
END second_attn_period
FROM calculate_terms
SELECT *
FROM gen_attn_terms
<code>
I get ORA-00928: missing SELECT keyword error. What could be the problem?You can just separate them with a comma:
WITH calculate_terms AS (SELECT robinst_current_term_code,
CASE
WHEN robinst_current_term_code LIKE '%60' THEN robinst_current_term_code - '40'
WHEN robinst_current_term_code LIKE '%20' THEN robinst_current_term_code - '100'
END first_term,
CASE
WHEN robinst_current_term_code LIKE '%60' THEN robinst_current_term_code - '100'
WHEN robinst_current_term_code LIKE '%20' THEN robinst_current_term_code - '160'
END second_term
FROM robinst
WHERE robinst_aidy_code = :aidy),
/*Use terms from calculate_terms to generate attendance periods*/
gen_attn_terms AS
SELECT
CASE
WHEN first_term LIKE '%60' THEN 'Fall '||substr(first_term,0,4)
WHEN first_term LIKE '%20' THEN 'Spring '||substr(first_term,0,4)
END first_attn_period,
CASE
WHEN second_term LIKE '%60' THEN 'Fall '||substr(second_term,0,4)
WHEN second_term LIKE '%20' THEN 'Spring '||substr(second_term,0,4)
END second_attn_period
FROM calculate_terms
)Not tested because there are no scripts. -
Problem using Toplink with JUnit
Hi,
I have a problem using Toplink with JUnit. Method under test is very simple: it use a static EntityManager object to open a transaction and persists data to db. When I invoke the method from a test method, it gives me the exception:
java.lang.AssertionError
at oracle.toplink.essentials.ejb.cmp3.persistence.PersistenceUnitProcessor.computePURootURL(PersistenceUnitProcessor.java:248)
at oracle.toplink.essentials.ejb.cmp3.persistence.PersistenceUnitProcessor.findPersistenceArchives(PersistenceUnitProcessor.java:232)
at oracle.toplink.essentials.ejb.cmp3.persistence.PersistenceUnitProcessor.findPersistenceArchives(PersistenceUnitProcessor.java:216)
at oracle.toplink.essentials.internal.ejb.cmp3.JavaSECMPInitializer.initialize(JavaSECMPInitializer.java:239)
at oracle.toplink.essentials.internal.ejb.cmp3.JavaSECMPInitializer.initializeFromMain(JavaSECMPInitializer.java:278)
at oracle.toplink.essentials.internal.ejb.cmp3.JavaSECMPInitializer.getJavaSECMPInitializer(JavaSECMPInitializer.java:81)
at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java:119)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60)
at it.valerio.electromanager.model.EntityFacade.<clinit>(EntityFacade.java:12)
at it.valerio.electromanager.business.ClienteBiz.insertIntoDatabase(ClienteBiz.java:36)
at it.valerio.electromanager.test.model.ClienteTest.insertDBTest(ClienteTest.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Where is the problem???
Regards,
ValerioEntityFacade class is very simple and it uses a static EntityManager object. Here the code:
public class EntityFacade {
private static EntityManager em = Persistence.createEntityManagerFactory("ElectroManager").createEntityManager();
private static Logger logger=Logger.getLogger(EntityFacade.class);
public static void insertCliente(Cliente c)
logger.debug("Inserisco cliente nel db: " + c);
em.getTransaction().begin();
c.setId(getNextIdForTable("Cliente"));
em.persist(c);
em.getTransaction().commit();
If I call the method from inside a main it works well, so I think the problem is not the classpath neither the URL in the persistence.xml. However the URL is:
<property name="toplink.jdbc.url" value="jdbc:derby:c:/programmi/ElectroManager/db/electroManager"/>
I use the latest build version of TopLink.
Thanks. -
Any Problems using SSL with Safari and the move with Internet explorer to require only TLS encryption.
Hi .
Apple no longer supports Safari for Windows if that's what you are asking > Apple apparently kills Windows PC support in Safari 6.0
Microsoft has not written IE for Safari for many years. -
Problem using ViewObject with bc4j:table
Hello !!
This is the query of my ViewObject:
select * from speiseplan order by jahr desc, kw desc;
and everything works fine in the BC4J tester:
jahr kw
2003 52
2003 7
2003 3
2002 51
But in my uix page the rows are not correctly sorted:
jahr kw
2003 3
2003 7
2003 52
2002 51
What's going wrong here?
Thanks for your help.
Regards,
MareikeDuplicate post.
Original problem using ViewObject with <bc4j:table> -
How I can use struts with uix jsp
Hi,
I want to use struts with uix jsp but I don't know how to set value of uix tag attribut by struts tag
example :
I want to change:
<uix:globalHeader text="title" >
by
<uix:globalHeader>
<bean:message key="title" arg0="Browse"/>
</uix:globalHeader>
N.B: I tried to use the tag <boundAttribute> but doesn't works
Thanks in advance.Hi Ghazouani,
From your sample code it looks like you are trying to use the Struts <bean:message> to provide internationalized text for the links in your globalHeader component. Couple of comments on this particular issue:
- You'll need to add a <link> element to your globalHeader for each item that you want to display. So, instead of:
<uix:globalHeader>
<bean:message key="title" arg0="Browse"/>
</uix:globalHeader>
You'll want something which looks like this:
<uix:globalHeader>
<uix:link text="Browse"/>
</uix:globalHeader>
- If you want to bind the text for each link to some internationalized value which is pulled from a ResourceBundle, you should use the UIX JSP <bundle> data provider:
<uix:bundle name="l10n" class="your.Bundle"/>
<uix:globalHeader>
<uix:link textBinding="title@l10n"/>
</uix:globalHeader>
In general when mixing JSP tags from different tag libraries, you need to be careful that you honor the semantics of each tag library. For example, in this particular case, the <uix:globalHeader> expects to have <uix:link> children - using any arbitrary tag (like <bean:message>) is not necessarily going to produce the desired results.
As far as general UIX/Struts integration goes, we recommend using uiXML as a view for your Struts application. Check out the "Using uiXML with Struts" section of the UIX Developer's Guide for more info.
Andy -
Problems using iCloud with Mountain Lion on iMac8,1
problems using iCloud with Mountain Lion on iMac8,1 - about 5J old - iMac gets slower and slower - total free memory is used in some minutes - no more reaction on input
Download > http://codykrieger.com/gfxCardStatus Open it and select Integrated Only. It's a bug with NVIDIA graphic cards
-
Using JNI with weblogic JSP & Servlets
I want to use native libraries from JSP and Servlets.
Everything works fine befire redeploying.
After redeploying there is an error:
Servlet failed with Exception
java.lang.UnsatisfiedLinkError: Native Library D:\WINNT\system32\XXXX.dll
already loaded in another classloader
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1346)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1306)
at java.lang.Runtime.loadLibrary0(Runtime.java:749)
at java.lang.System.loadLibrary(System.java:820)
at HelloWorld.<clinit>(HelloWorld.java:9)
at NativeTestServlet.doGet(NativeTestServlet.java:31)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:208)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:1127)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:1529)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>
Can anybody solve it?
Best wishes, Oleg.
Java will not allow us to reload any class that is dependent on a native
library. I suggest that any classes that depend on native code should be
put in the system classpath. If you change these classes or the native
library you will need to restart your server.
Sam
"Jennifer Yin" <[email protected]> wrote in message
news:[email protected]...
> Oleg-
>
> I'm having the exact same problem and was wondering how you fixed it. I
ran
> javah -jni <classname> to verify the correct method call and have also
verified
> that the library file is included in the system path.
>
> Any other suggestions?
>
> Jennifer
>
> Oleg wrote:
>
> > I want to use native libraries from JSP and Servlets.
> > Everything works fine befire redeploying.
> > After redeploying there is an error:
> >
> > Servlet failed with Exception
> > java.lang.UnsatisfiedLinkError: Native Library
D:\WINNT\system32\XXXX.dll
> > already loaded in another classloader
> > at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1346)
> > at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1306)
> > at java.lang.Runtime.loadLibrary0(Runtime.java:749)
> > at java.lang.System.loadLibrary(System.java:820)
> > at HelloWorld.<clinit>(HelloWorld.java:9)
> > at NativeTestServlet.doGet(NativeTestServlet.java:31)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > at
> >
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
> > :208)
> > at
> >
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
> > ntext.java:1127)
> > at
> >
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
> > :1529)
> > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
> > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
> > >
> >
> > Can anybody solve it?
> >
> > Best wishes, Oleg.
>
-
Problems Using Viber with new iPhone 4S
When I try and use VIber with my new iPhone is says push notifications are not enabled, even though I've enabled them. I've also tried deleting and reinstalling viber several times, along with restarting the phone. Is anyone else having the same problem and does anyone have any suggestions of something else I could do?
Hi,
This is a member of Viber's development team.
@libbyfromchristchurch - Please check: http://helpme.viber.com/index.php?/Knowledgebase/Article/View/38/0/push-notifica tions-for-iphone---how-to-enable
@quyenfromseattle - This is a known issue which will be resolved shortly. Make sure that you stay current with our version updates.
It may help to change 'banners' to 'alerts' on Viber's Push Notification settings as a temporary workaround.
Thank you for your patience! -
Problem using ipod with itunes 5.0.1
Could anyone help me?? I'm having serious problems using my ipod mini with my "just downloaded" itunes 5.0.1.
it says that my comunication software with ipod is not correctly installed and that i have to reinstall itunes again. i did it the problem is always there. what can i do?? can someone help me??Man, it seems that iTunes 5.whatever has gotten us all a little hot under the collar. I'm back up and running...this is what I did...I hope it helps some of you out.
1) created a new folder in MyMusic and copied everything from my iTunes library to the new folder. I then tested a few songs to make sure they still played (you never know)
2) I deleted iTunes using the control panel selection Add/Delete programs. I emptied the recycle gin and then did a search to see that iTunes was no longer there.
3) I went to filehippo.com to download iTunes 4.8 (my original disks are packed (Thank you to poster Allison for the filehippo.com suggestion).
4) I copied all my songs back into iTunes from where I had stored them in the new folder I created in MyMusic)
5) I connected the iPod Mini and opened iTunes and darn if it STILL didn't recognize the iPod
6) I did a restore on the iPod
7) I reconnected the iPod and had to reregister it and Voila! it worked again!!!!
Whatever the new features were in ver. 5.01, they were NOT worth the hassle I've experienced over the past two weeks. I'll stick with version 4.8 for awhile. -
Problem using SmartCard with 2 Certificates stored and SunPKCS11
Hi,
I'm trying to access one SmartCard token in Java 1.5 using SunPKCS11 provider for crypt, decrypt and digital signature operations.
I have 2 certificates stored on Token:
- CertA;
- CertB.
There are also 2 PIN:
- PIN1;
- PIN2.
I use:
- PIN1 for logging into the token;
- PIN1 for operation involving CertA;
- PIN2 for operation involving CertB;
There is no problem to logging into the token using Java and, without any troubles, I can read certificates and key from the
cryptographic card.
There is no problem using CertA for all my operation, but every attempt of using Private Key of CertB (for the same operations) returns with an Exception:
java.security.ProviderException: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DEVICE_ERROR
Here there's an extract of my source code.
public void loginToken() {
Provider UserProvider = new sun.security.pkcs11.SunPKCS11(C:\\pkcs11.cfg);
Security.addProvider(UserProvider);
try {
KeyStore ks = null;
X509Certificate UserCert = null;
PrivateKey UserCertPrivKey = null;
PublicKey UserCertPubKey = null;
//PIN
char PIN1[] = "11111".toCharArray();
char PIN2[] = "22222".toCharArray();
//logging into token
ks = KeyStore.getInstance("PKCS11", UserProvider);
ks.load(null, PIN1);
//enumeration alias
String alias = "";
Enumeration e = ks.aliases();
while (e.hasMoreElements()) {
alias = (String) e.nextElement();
//Certificate
UserCert = (X509Certificate) ks.getCertificate(alias);
//PublicKey
UserCertPubKey = (PublicKey) ks.getCertificate(alias).getPublicKey();
if (alias.compareToIgnoreCase("Cert1") == 0) {
//PrivateKey reference
UserCertPrivKey = (PrivateKey) ks.getKey(alias, PIN1);
} else if (alias.compareToIgnoreCase("Cert2") == 0) {
//PrivateKey reference
UserCertPrivKey = (PrivateKey) ks.getKey(alias, PIN2);
} else {
System.out.println("ALIAS UNKNOW");
System.exit(1);
//Signature Test
if (!MakeSignature(UserCertPrivKey, UserProvider))
System.out.println(" *** SIGNATURE OK *** ");
else
System.out.println(" *** SIGNATURE KO *** ");
catch (Exception ex) {
System.out.println("ERROR: " + ex);
public boolean MakeSign(PrivateKey PrivKey, Provider p) {
try {
//File I/O
FileInputStream txtfis = new FileInputStream("C:\\Test.txt");
FileOutputStream sigfos = new FileOutputStream("C:\\Test_Signature.txt");
//Signature Obj init
Signature dsa = Signature.getInstance("SHA1withRSA", p.getName());
dsa.initSign(PrivKey);
//Update data
BufferedInputStream bufin = new BufferedInputStream(txtfis);
byte[] buffer = new byte[1024];
int len;
while (bufin.available() != 0) {
len = bufin.read(buffer);
dsa.update(buffer, 0, len);
bufin.close();
//Make signature
byte[] realSig = dsa.sign();
//save signature on file
sigfos.write(realSig);
sigfos.close();
return true;
catch (Exception ex) {
System.out.println("ERROR: " + ex);
return false;
Any help would be grateful...
Thanks in advance.
P.S. Sorry for my EnglishThis is the same my initial problem.
I resolved it using IAIK-PKCS#11Wrapper (it is FREE) insted of sun.security.pkcs11.SunPKCS11.
You can find it here:
http://jce.iaik.tugraz.at/sic/products/core_crypto_toolkits/pkcs_11_wrapper
Here an exemple of code.
The main class:
import iaik.pkcs.pkcs11.Module;
import iaik.pkcs.pkcs11.DefaultInitializeArgs;
import java.util.Hashtable;
import iaik.pkcs.pkcs11.Token;
import iaik.pkcs.pkcs11.Slot;
import iaik.pkcs.pkcs11.Session;
import iaik.pkcs.pkcs11.objects.RSAPrivateKey;
import java.util.Vector;
import iaik.pkcs.pkcs11.objects.PrivateKey;
import iaik.pkcs.pkcs11.objects.X509PublicKeyCertificate;
import java.util.Enumeration;
import iaik.pkcs.pkcs11.objects.Key;
import java.security.cert.CertificateFactory;
import java.io.ByteArrayInputStream;
import iaik.pkcs.pkcs11.Mechanism;
import java.security.Security;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import java.io.File;
import java.io.FileInputStream;
import org.bouncycastle.cms.CMSSignedDataGenerator;
import org.bouncycastle.cms.CMSProcessableByteArray;
import java.util.ArrayList;
import java.security.cert.CertStore;
import java.security.cert.CollectionCertStoreParameters;
import org.bouncycastle.cms.CMSSignedData;
import java.io.FileOutputStream;
import java.security.cert.X509Certificate;
import iaik.pkcs.pkcs11.TokenInfo;
import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
public class MakeSignature {
public static void main(String[] args) {
String USER_PIN = "12345678";
String DLL_NAME = "C:\\windows\\system32\\dll_P11_name.dll";
String OBJ_LABEL1 = "CNS0"; //this is the label of my 1th cert
String OBJ_LABEL2 = "CNS1"; //this is the label of my 2th cert
String INPUT_FILE = "C:\\Temp\\test.txt";
String OUTPUT_FILE = "C:\\Temp\\test.p7m";
try {
// ********** INITIALIZE PKCS#11 MODULE WITH DEFAULT PARAMETERS **********
Module pkcs11Module = Module.getInstance(DLL_NAME);
pkcs11Module.initialize(new DefaultInitializeArgs());
// ********** SELECT TOKEN **********
Slot[] slotsWithToken = pkcs11Module.getSlotList(Module.SlotRequirement.TOKEN_PRESENT);
Token[] tokens = new Token[slotsWithToken.length];
Hashtable tokenIDtoToken = new Hashtable(tokens.length);
long tokenID = -1;
Token tokenUsed = null;
//enum readers
for (int i = 0; i < slotsWithToken.length; i++) {
tokens[i] = slotsWithToken.getToken();
tokenID = tokens[i].getTokenID();
tokenIDtoToken.put(new Long(tokenID), tokens[i]);
System.out.println("Active tokens:");
System.out.println("Token ID: " + tokenID);
if (tokens.length == 0) { //No SC found
System.out.println("No SC presents");
else {
System.out.println("Using token: " + tokens[0].getTokenID());
tokenUsed = tokens[0];
//Note: if you have more reader and more SC inserted, you have to write
//here the code for select the right token
// ********** OPEN SESSION VS THE TOKEN AND IF REQUIRED SUBMIT PIN **********
TokenInfo tokenInfo = tokenUsed.getTokenInfo();
Session session = tokenUsed.openSession(Token.SessionType.SERIAL_SESSION, false, null, null);
if (tokenInfo.isLoginRequired()) {
session.login(Session.UserType.USER, USER_PIN.toCharArray());
// ********** SET SEARCH TEMPLATE FOR THE P11 OBJECT **********
RSAPrivateKey privateSignatureKeyTemplate = new RSAPrivateKey();
privateSignatureKeyTemplate.getSign().setBooleanValue(Boolean.TRUE);
privateSignatureKeyTemplate.getLabel().setCharArrayValue(OBJ_LABEL2.toCharArray());
// ********** SEARCH P11 OBJECT USING TEMPLATE **********
Vector keyList = new Vector(4);
session.findObjectsInit(privateSignatureKeyTemplate);
Object[] matchingKeys;
while ( (matchingKeys = session.findObjects(1)).length > 0) {
keyList.addElement(matchingKeys[0]);
session.findObjectsFinal();
//Try to find the corresponding certificates for the signature keys
Hashtable keyToCertificateTable = new Hashtable(4);
Enumeration keyListEnumeration = keyList.elements();
while (keyListEnumeration.hasMoreElements()) {
PrivateKey signatureKey = (PrivateKey) keyListEnumeration.nextElement();
byte[] keyID = signatureKey.getId().getByteArrayValue();
X509PublicKeyCertificate certificateTemplate = new X509PublicKeyCertificate();
certificateTemplate.getId().setByteArrayValue(keyID);
session.findObjectsInit(certificateTemplate);
Object[] correspondingCertificates = session.findObjects(1);
if (correspondingCertificates.length > 0) {
keyToCertificateTable.put(signatureKey, correspondingCertificates[0]);
session.findObjectsFinal();
//There are three cases now: 1 no obj found; 2 found only one obj, 3 found more obj
Key selectedKey = null;
X509PublicKeyCertificate correspondingCertificate = null;
//no object found for template
if (keyList.size() == 0) {
System.out.println("No object found for template");
throw new Exception("No object found for template");
//Founf only one object
else if (keyList.size() == 1) {
selectedKey = (Key) keyList.elementAt(0);
// create a IAIK JCE certificate from the PKCS11 certificate
correspondingCertificate = (X509PublicKeyCertificate)keyToCertificateTable.get(selectedKey);
System.out.println("One object Found");
//Found more object ... user can select one
else {
System.out.println("Many obj found!!!");
//write here the code for select the right object
// ********** GET THE OBJECT **********
RSAPrivateKey signerPriKey = (RSAPrivateKey) selectedKey;
java.security.cert.CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
byte[] derEncodedCertificate = correspondingCertificate.getValue().getByteArrayValue();
//Cast to java.security.cert.X509Certificate
java.security.cert.X509Certificate signerCert = (java.security.cert.X509Certificate) certificateFactory.
generateCertificate(new ByteArrayInputStream(derEncodedCertificate));
// ********** SIGNATURE OPERATION **********
//Add BouncyCastle as provider
Security.addProvider(new BouncyCastleProvider());
//initialize signature operation
session.signInit(Mechanism.RSA_PKCS, (PrivateKey) signerPriKey);
//get input data
File src = new File(INPUT_FILE);
int sizecontent = ( (int) src.length());
byte[] contentData = new byte[sizecontent];
FileInputStream freader = new FileInputStream(src);
freader.read(contentData, 0, sizecontent);
freader.close();
//calculate digest of the input data
byte[] toEncrypt = buildBits(contentData); //I've already posted the code for this function
//make signature
byte[] signature = session.sign(toEncrypt);
// ********** MAKE P7 WELL FORMAT DOCUMENT **********
//CMSSignedDataGenerator fact = new CMSSignedDataGenerator();
Signature2CMSSignedData fact = new Signature2CMSSignedData();
CMSProcessableByteArray content = new CMSProcessableByteArray(contentData);
//Creation of BC CertStore
ArrayList certList = new ArrayList();
certList.add(signerCert);
CertStore certs = CertStore.getInstance("Collection", new CollectionCertStoreParameters(certList), "BC");
//Signature Alg
String algorithm = CMSSignedDataGenerator.DIGEST_SHA1;
//add element to P7
fact.addSignature(signature, signerCert, algorithm);
fact.addCertificatesAndCRLs(certs);
//generate enveloped using Bouncycastle provider
CMSSignedData envdata = fact.generate(PKCSObjectIdentifiers.data.getId(), content, true);
byte[] enveloped = envdata.getEncoded();
//Write P7 file
FileOutputStream efos = new FileOutputStream(OUTPUT_FILE);
efos.write(enveloped);
efos.close();
// ********** END **********
session.closeSession();
pkcs11Module.finalize(null);
catch (Exception ex) {
ex.printStackTrace();
}Main class uses buildBits function (already posted in this topic) and Signature2CMSSignedData class.import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.security.cert.CertStore;
import java.security.cert.X509CRL;
import java.security.cert.X509Certificate;
import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1InputStream;
import org.bouncycastle.asn1.ASN1OctetString;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.ASN1Set;
import org.bouncycastle.asn1.BERConstructedOctetString;
import org.bouncycastle.asn1.DEREncodable;
import org.bouncycastle.asn1.DERNull;
import org.bouncycastle.asn1.DERObject;
import org.bouncycastle.asn1.DERObjectIdentifier;
import org.bouncycastle.asn1.DEROctetString;
import org.bouncycastle.asn1.DERSet;
import org.bouncycastle.asn1.cms.ContentInfo;
import org.bouncycastle.asn1.cms.IssuerAndSerialNumber;
import org.bouncycastle.asn1.cms.SignedData;
import org.bouncycastle.asn1.cms.SignerIdentifier;
import org.bouncycastle.asn1.cms.SignerInfo;
import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
import org.bouncycastle.asn1.x509.CertificateList;
import org.bouncycastle.asn1.x509.TBSCertificateStructure;
import org.bouncycastle.asn1.x509.X509CertificateStructure;
import org.bouncycastle.cms.CMSProcessable;
import org.bouncycastle.cms.CMSSignedData;
* class for generating a RSA pkcs7-signature message.
public class Signature2CMSSignedData2 {
CertStore certStore;
List certs = new ArrayList();
List crls = new ArrayList();
List signerInfs = new ArrayList();
List signers = new ArrayList();
public static final String DATA = PKCSObjectIdentifiers.data.getId();
public static final String ENCRYPTION_RSA = "1.2.840.113549.1.1.1";
private byte[] signatureData = null;
private X509Certificate cert = null;
private String digestOID = null;
private String encOID = null;
public Signature2CMSSignedData2() {
public void addSignature(byte[] signatureData, X509Certificate cert, String digestOID) {
this.signatureData = signatureData;
this.cert = cert;
this.digestOID = digestOID;
this.encOID = ENCRYPTION_RSA;
public void addCertificatesAndCRLs(CertStore certStore) throws Exception{
try {
Iterator it = certStore.getCertificates(null).iterator();
while (it.hasNext()) {
X509Certificate c = (X509Certificate) it.next();
certs.add(new X509CertificateStructure((ASN1Sequence) makeObj(c.getEncoded())));
Iterator it2 = certStore.getCRLs(null).iterator();
while (it2.hasNext()) {
X509CRL c = (X509CRL) it2.next();
crls.add(new CertificateList((ASN1Sequence) makeObj(c.getEncoded())));
catch (Exception e) {
throw new Exception(e.getMessage());
private DERObject makeObj(byte[] encoding) throws Exception {
if (encoding == null) {
return null;
ByteArrayInputStream bIn = new ByteArrayInputStream(encoding);
ASN1InputStream aIn = new ASN1InputStream(bIn);
return aIn.readObject();
public CMSSignedData generate(String signedContentType, CMSProcessable content, boolean encapsulate) throws Exception {
try {
ASN1EncodableVector digestAlgs = new ASN1EncodableVector();
ASN1EncodableVector signerInfos = new ASN1EncodableVector();
DERObjectIdentifier contentTypeOID = new DERObjectIdentifier(signedContentType);
// add the SignerInfo objects
Iterator it = signerInfs.iterator();
AlgorithmIdentifier digAlgId = new AlgorithmIdentifier(new DERObjectIdentifier(digestOID), new DERNull());
AlgorithmIdentifier encAlgId;
encAlgId = new AlgorithmIdentifier(new DERObjectIdentifier(encOID), new DERNull());
digestAlgs.add(digAlgId);
ASN1Set signedAttr = null;
ASN1Set unsignedAttr = null;
ASN1OctetString encDigest = new DEROctetString(signatureData);
ByteArrayInputStream bIn = new ByteArrayInputStream(cert.getTBSCertificate());
ASN1InputStream aIn = new ASN1InputStream(bIn);
TBSCertificateStructure tbs = TBSCertificateStructure.getInstance(aIn.readObject());
IssuerAndSerialNumber encSid = new IssuerAndSerialNumber(tbs.getIssuer(), tbs.getSerialNumber().getValue());
signerInfos.add(new SignerInfo(new SignerIdentifier(encSid), digAlgId, signedAttr, encAlgId, encDigest, unsignedAttr));
ASN1Set certificates = null;
if (certs.size() != 0) {
ASN1EncodableVector v = new ASN1EncodableVector();
it = certs.iterator();
while (it.hasNext()) {
v.add( (DEREncodable) it.next());
certificates = new DERSet(v);
ASN1Set certrevlist = null;
if (crls.size() != 0) {
ASN1EncodableVector v = new ASN1EncodableVector();
it = crls.iterator();
while (it.hasNext()) {
v.add( (DEREncodable) it.next());
certrevlist = new DERSet(v);
ContentInfo encInfo;
if (encapsulate) {
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
content.write(bOut);
ASN1OctetString octs = new BERConstructedOctetString(bOut.toByteArray());
encInfo = new ContentInfo(contentTypeOID, octs);
else {
encInfo = new ContentInfo(contentTypeOID, null);
SignedData sd = new SignedData(new DERSet(digestAlgs), encInfo, certificates, certrevlist, new DERSet(signerInfos));
ContentInfo contentInfo = new ContentInfo(PKCSObjectIdentifiers.signedData, sd);
return new CMSSignedData(content, contentInfo);
catch (Exception e) {
throw new Exception(e.getMessage());
}Bye. -
Problem using workflow with ess leave requests
Hello, I have been experiencing some problems using wf for approval with leave request in ess.
I customized ws12300111 for request approval and it is working fine. But when we try to cancel a request in ess, there are strange things happening:
- If the request is in status sent: the workflow gets in error.
- If the request is already in db: it starts a new workflow (ws12300111).
We don't want this because we have customized ws12300111 only for new requests. I have tried to customize absences in SPRO so that onlu new requests start the WS12300111, Onlu new requests have the workflow field filled with 12300111, but even like that, the WS12300111 starts whenever that is a cancelling or modification of a request.
I have also tried using a different workflow for canceliing (WS12400007), but in this case there is an error in ess when we try to submit.
This is really annoying, I have tried everything...Hello,
"If the request is in status sent: the workflow gets in error."
Please always say what the error is.
" If the request is already in db: it starts a new workflow (ws12300111"
You first have to find out how this is done. Look in SWEL, it's probably via some sort of CHANGED event.
regards
Rick Bakker
hanabi technology -
Regex Problem Using && and ^ With Code
When I create a pattern that uses the && or the ^ symbol it does not give me the result data.
&& is for LOGICAL AND intersection matches of data and ^ for except
matches
The code is below
import java.lang.*;
import java.util.regex.*;
* <p>Title: RegexTest</p>
* <p>Description: java version of hesd</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author MR Lewis
* @version 1.0
public class RegexTester
static final int NUMBEROFSTRINGS=4;
static final int NUMBEROFEXPRESSIONS=7;
static final int NUMBEROFTESTS=28;
static Matcher regexMatcher;
static String strTestString1 ="MoonRd 115 PCB 356338_NPC ... Rtn to Normal 114.47 KV !2.123088";
static String strTestString2 ="VillaRica 115 PCB 356338_NPC ... Fail 237.47 KV !2.123089";
static String strTestString3 ="Norcross 115 PCB 356338_NPC ... Fail 107.47 KV !2.123090";
static String strTestString4 ="MrLewisRd 230 PCB 356338_NPC ... LO OPLmt 114.47 KV !1.123091";
static Pattern ptnCompiledExpression=null;
public RegexTester()
public static void main(String[] args)
boolean blnPatternFound=false;
boolean blnRunLoop=true;
int iWhileLoop=0;
int iForLoop=0;
int intTestNumber=1;
int three=3;
int one=1;
int intExpressionNumber=0;
String strTestStringTemp="";
String strTestExpressionTemp="";
String [] arrTestStrings = new String[NUMBEROFSTRINGS];
String [] arrTestExpressions = new String[NUMBEROFEXPRESSIONS];
arrTestExpressions[0]="MoonRd|PCB"; //TEST OR EXPRESSION
arrTestExpressions[1]="Vill&&Normal"; //TEST AND EXPRESSION **DOES NOT WORK**
arrTestExpressions[2]="^Fail"; //TEST ^ EXCEPTION EXPRESSION **DOES NOT WORK**
arrTestExpressions[3]="PCB"; //TEST REGULAR PATTERN
arrTestExpressions[4]="^(!2)"; //TEST OF ^ EXCEPTION ANOTHER WAYE **DOES NOT WORK**
arrTestExpressions[5]="(!1)"; //TEST OF PATTERN
arrTestStrings[0] ="MoonRd 115 PCB 356338_NPC ... Rtn to Normal 114.47 KV !2.123088";
arrTestStrings[1] ="VillaRica 115 PCB 356338_NPC ... Fail 237.47 KV !2.123089";
arrTestStrings[2] ="Norcross 115 PCB 356338_NPC ... Fail 107.47 KV !2.123090";
arrTestStrings[3] ="MrLewisRd 230 PCB 356338_NPC ... LO OPLmt 114.47 KV !1.123091";
RegexTester regexTest1 = new RegexTester();
while(blnRunLoop)
if(iWhileLoop==0){strTestExpressionTemp=arrTestExpressions[0];} //test each expression
else{strTestExpressionTemp=arrTestExpressions[intExpressionNumber];} //test each expression
systemlog("\n\nTest #"+intTestNumber+ "-"+(intTestNumber+three)+"\t\t<"+strTestExpressionTemp+">");
systemlog("------------------------------------------------------------");
for(; iForLoop<NUMBEROFSTRINGS; iForLoop++)
strTestStringTemp=arrTestStrings[iForLoop];
ptnCompiledExpression = compilepatterns(strTestExpressionTemp);
regexMatcher = ptnCompiledExpression.matcher(strTestStringTemp);
blnPatternFound=regexMatcher.find();
if(blnPatternFound)
systemlog("\tFound: "+strTestStringTemp);
else
systemlog("\tNOTHING TO REPORT USING: "+strTestExpressionTemp);
intTestNumber++;
if(iForLoop==3){intExpressionNumber++;}
iForLoop=0;
regexMatcher.reset();
iWhileLoop++;
if((intTestNumber+three)==NUMBEROFTESTS){blnRunLoop=false;break;}
private static synchronized Pattern compilepatterns (String strExpression)
Pattern ptnReturn;
ptnReturn = Pattern.compile(strExpression);
// systemlog("Complied=>"+ ptnReturn.pattern().toString()+"<=Expression");
return(ptnReturn);
private static void systemlog (String strSystemMessage)
System.out.println(strSystemMessage);
Have you ran across any issues with this?
Are there some search limitations ?
Based on the following input data
"MoonRd 115 PCB 356338_NPC ... Rtn to Normal 114.47 KV !2.123088";
"VillaRica 115 PCB 356338_NPC ... Fail 237.47 KV !2.123089";
"Norcross 115 PCB 356338_NPC ... Fail 107.47 KV !2.123090";
"MrLewisRd 230 PCB 356338_NPC ... LO OPLmt 114.47 KV !1.123091";
Test #1-4 <MoonRd|PCB>
Found: MoonRd 115 PCB 356338_NPC ... Rtn to Normal 114.47 KV !2.123088
Found: VillaRica 115 PCB 356338_NPC ... Fail 237.47 KV !2.123089
Found: Norcross 115 PCB 356338_NPC ... Fail 107.47 KV !2.123090
Found: MrLewisRd 230 PCB 356338_NPC ... LO OPLmt 114.47 KV !1.123091
Test #5-8 <Vill&&Normal>
NOTHING TO REPORT USING: Vill&&Normal
NOTHING TO REPORT USING: Vill&&Normal
NOTHING TO REPORT USING: Vill&&Normal
NOTHING TO REPORT USING: Vill&&Normal
Test #9-12 <^Fail>
NOTHING TO REPORT USING: ^Fail
NOTHING TO REPORT USING: ^Fail
NOTHING TO REPORT USING: ^Fail
NOTHING TO REPORT USING: ^Fail
Test #13-16 <PCB>
Found: MoonRd 115 PCB 356338_NPC ... Rtn to Normal 114.47 KV !2.123088
Found: VillaRica 115 PCB 356338_NPC ... Fail 237.47 KV !2.123089
Found: Norcross 115 PCB 356338_NPC ... Fail 107.47 KV !2.123090
Found: MrLewisRd 230 PCB 356338_NPC ... LO OPLmt 114.47 KV !1.123091
Test #17-20 <^(!2)>
NOTHING TO REPORT USING: ^(!2)
NOTHING TO REPORT USING: ^(!2)
NOTHING TO REPORT USING: ^(!2)
NOTHING TO REPORT USING: ^(!2)
Test #21-24 <(!1)>
NOTHING TO REPORT USING: (!1)
NOTHING TO REPORT USING: (!1)
NOTHING TO REPORT USING: (!1)
Found: MrLewisRd 230 PCB 356338_NPC ... LO OPLmt 114.47 KV !1.123091The first solution yeilded the following which is still wrong.
here is there result when I use the \\&\\& and the \\^ which is still wrong.
how come there is no easy way to just say give me the lines that match vill and fail
Test #1-4 <MoonRd|PCB>
Found: MoonRd 115 PCB 356338_NPC ... Rtn to Normal 114.47 KV !2.123088
Found: VillaRica 115 PCB 356338_NPC ... Fail 237.47 KV !2.123089
Found: Norcross 115 PCB 356338_NPC ... Fail 107.47 KV !2.123090
Found: MrLewisRd 230 PCB 356338_NPC ... LO OPLmt 114.47 KV !1.123091
when I Used the \\&\\&
Test #5-8 <Vill\&\&[Normal]>
NOTHING TO REPORT USING: Vill\&\&[Normal]
NOTHING TO REPORT USING: Vill\&\&[Normal]
NOTHING TO REPORT USING: Vill\&\&[Normal]
NOTHING TO REPORT USING: Vill\&\&[Normal]
Test #9-12 <\^Fail>
NOTHING TO REPORT USING: \^Fail
NOTHING TO REPORT USING: \^Fail
NOTHING TO REPORT USING: \^Fail
NOTHING TO REPORT USING: \^Fail
Test #13-16 <PCB>
Found: MoonRd 115 PCB 356338_NPC ... Rtn to Normal 114.47 KV !2.123088
Found: VillaRica 115 PCB 356338_NPC ... Fail 237.47 KV !2.123089
Found: Norcross 115 PCB 356338_NPC ... Fail 107.47 KV !2.123090
Found: MrLewisRd 230 PCB 356338_NPC ... LO OPLmt 114.47 KV !1.123091
Test #17-20 <\^(!2)>
NOTHING TO REPORT USING: \^(!2)
NOTHING TO REPORT USING: \^(!2)
NOTHING TO REPORT USING: \^(!2)
NOTHING TO REPORT USING: \^(!2)
Test #21-24 <(!1)>
NOTHING TO REPORT USING: (!1)
NOTHING TO REPORT USING: (!1)
NOTHING TO REPORT USING: (!1)
Found: MrLewisRd 230 PCB 356338_NPC ... LO OPLmt 114.47 KV !1.123091 -
I have problem using sbh50 with sony z1
when i use sbh50 with my z1 during call the screen stays on I want it off how can i solv this problem ?????
Try settings-apps-all-smart connect,force stop and clear data.Restart the phone.
All we have to decide is what to do with the time that is given to us - J.R.R. Tolkien
Maybe you are looking for
-
Unable to upgrade from aperture 3.0.2
i have aperture 3.0.2. when i try to upgrade to 3.1 i get a message telling me that i need aperture 3.0 !!!
-
I can not install itunes on windows 7
Itunes said I needed to upgrade to version 11.1. I tried to download and nothing. It will not let me install ( I have windows 7). Long story short I have deleted itunes then tried to re-install again. This did not work. Now, I don't have itunes at al
-
I want to change from colombia to spain store
my account is from colobia and u want to change it to spain, i went to aacount and changed the country to colombia but still every time i check it goes back to colombia, so i cant use ping because its form a different region
-
Broken Image is Shown in IE OF JSF - Sun App9 Deployment.
Hi Friends, I have developed Application in Net Beans for JSF(Its a simple App.). When I deploy it onto Sun Application Server, It shows Broken Image. For Image Display I have Done Following..... Please Help. Thanks. IDE : NetBeans 5.5 AppServer : Su
-
Does Camera Raw support Canon G9?
Appreciate any help with this problem: My new Canon G9 raw files (.CR2's) are not recognized by Bridge 4.1. Windows XP, SP2 Just installed CS3 Master Collection including: Bridge 2.1.0.100 Camera Raw 4.1 Bridge wont show Raw thumbs -- only "CR2" icon