HttpSessionListener: how to get the username?
When a session is created, I want to read some data from database
and store it as session variables. What data is to be read depends
on the user name.
I use the HttpSessionListener.
How can I get the username from within the sessionCreated method?
I could getRemoteUser() from HttpServletRequest, but how do I get
the request?
J2EE API documentation says:
public interface HttpSession
Provides a way to identify a user across more than one page request or
visit to a Web site and to store information about that user.
Therefore, my problem ought to have a solution, oughtn't it?
You'd like to think so.
Unfortunately, the Servlets 2.3 spec does not appear to address combining deployer-based authentication with deployer-based listener classes. This means it's pretty much up to the vendors whether you can do this.
I'm using jetty/jboss, and the situation is as follows:
Authentication info is stored in the session only if you use form-based authentication (which, as I found, means you're forced to use form-based authentication if you want your users to be able to log off.)
However, even if you are using form-based authentication, there are two problems.
1. your HttpSessionListener implementing class gets called BEFORE they login (i.e. before the login page is presented). So there's nothing in the session yet.
2. How the container stores the authentication info in the session is entirely up to the vendor. In the case of jetty, the login is stored in the session property "org.mortbay.jetty.Auth".
So in the case of Jetty, you'd need to implement HttpSessionAttributesListener, wait for that property to be set, and then get the stuff from the db based on that setting. Needless to say, this is highly non-portable. sigh.
I think the only way to do what we want is to forget HttpServletRequest and use a filter instead. Bummer.
Did you come up with any bright ideas in the end?
Similar Messages
-
How to get the username in a custom password change routine / procedure / form when a user's password has expired and is redirected automatically to this custom program?
We use the 2nd parameter in LOGIN_URL column in WWSSO_LS_CONFIGURATION_INFO$ table to get to this custom change-password proc.OK !
Use that maybe good :
select USERID into v_user from sys.aud$
where ntimestamp#=(
select max(ntimestamp#)
from sys.aud$ ); -
How to get the username/password of the current owner of the running code
Dear friends,
Our product is running on the App Server(weblogic/websphere...) and we also use security provider(OpenLDAP) and kerberos to support SSO. Before, when a user tyies to login in the first time, the way we use to authenticate the user is:
1) Accept the username/password
2) Query the security provider(OpenLDAP) to get the principles.
3) verity if the username/password is corrent or not.
As we know, to query the principles, we need to provide a search user(both username and password) if we configured the access control of the ldap server:
I have configured my envirioment as follows
1) In the LDAP server, configured the Middle Tire user(The Operating System user running the App Server) to have the permission to query principles.
2) The server is configured to runing on SSO envirioment.
My question is could I get the username/password of the OS user running the App Server at runtime so that I can query the ldap server without explicitly providing the search user?
Thanks,
RR
Edited by: Ricky Ru on Oct 9, 2011 1:50 AMThanks EJP.
I have made some progress on this. But I have met another issue.
*1) Using JAAS to login.*
loginContext.login();
Subject subject = loginContext.getSubject();
ldapContext = (LdapContext) Subject.doAs(subject, this);
*2) Init the ldapContext to use the GSSAPI authentication*
// this is called automatically by login()
public Object run() {
Hashtable ldapEnv = new Hashtable();
ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
ldapEnv.put(Context.PROVIDER_URL, "ldap://9.30.215.197");
ldapEnv.put(Context.SECURITY_AUTHENTICATION,"GSSAPI");
ldapEnv.put(Context.SECURITY_PRINCIPAL,"");
ldapEnv.put(Context.SECURITY_CREDENTIALS,"");
//System.setProperty("sun.security.krb5.debug", "false");
// This tells the GSS-API to use the cached ticket as
// credentials, if it is available
System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
try {
InitialLdapContext ctx = new InitialLdapContext(ldapEnv,null);
But I got the following exception when excuting new InitialLdapContext(ldapEnv,null);
Debug is true storeKey false useTicketCache true useKeyTab false doNotPrompt false ticketCache is null isInitiator true KeyTab is null refreshKrb5Config is false principal is null tryFirstPass is false useFirstPass is false storePass is false clearPass is false
Acquire TGT from Cache
Principal is [email protected]
Commit Succeeded
javax.naming.AuthenticationException: GSSAPI [Root exception is javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Integrity check on decrypted field failed (31))]]
at com.sun.jndi.ldap.sasl.LdapSasl.saslBind(LdapSasl.java:150)
at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:214)
at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2694)
at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:293)
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175)
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193)
at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:136)
at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:66)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:134)
at LDAPKerbService.run(LDAPKerbService.java:66)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:337)
at LDAPKerbService.login(LDAPKerbService.java:40)
at LDAPKerbService.main(LDAPKerbService.java:82)
Caused by: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Integrity check on decrypted field failed (31))]
at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:194)
at com.sun.jndi.ldap.sasl.LdapSasl.saslBind(LdapSasl.java:105)
... 16 more
Caused by: GSSException: No valid credentials provided (Mechanism level: Integrity check on decrypted field failed (31))
at sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:663)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:230)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:162)
at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:175)
... 17 more
Caused by: KrbException: Integrity check on decrypted field failed (31)
at sun.security.krb5.KrbTgsRep.<init>(KrbTgsRep.java:61)
at sun.security.krb5.KrbTgsReq.getReply(KrbTgsReq.java:185)
at sun.security.krb5.internal.CredentialsUtil.serviceCreds(CredentialsUtil.java:294)
at sun.security.krb5.internal.CredentialsUtil.acquireServiceCreds(CredentialsUtil.java:106)
at sun.security.krb5.Credentials.acquireServiceCreds(Credentials.java:562)
at sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:594)
... 20 more
Caused by: KrbException: Identifier doesn't match expected value (906)
at sun.security.krb5.internal.KDCRep.init(KDCRep.java:133)
at sun.security.krb5.internal.TGSRep.init(TGSRep.java:58)
at sun.security.krb5.internal.TGSRep.<init>(TGSRep.java:53)
at sun.security.krb5.KrbTgsRep.<init>(KrbTgsRep.java:46)
... 25 more
Do you have any clue on this? Thanks. -
How to get the username in "atfer serverror" trigger ?
Hi folks;
How to get the name of the user who just miss his connection to the database in a "after serverror" trigger ?
The code of the trigger :
create or replace
TRIGGER TRG_LOGGON_FAILURES
AFTER SERVERERROR ON DATABASE
BEGIN
IF (IS_SERVERERROR(1017)) THEN
UPDATE utilisateur_ora SET UTO_STA='BLOQUE', UTO_DATE_STATUT=sysdate WHERE UTO_USR_GPL=<var_user>;
COMMIT;
END IF;
END;OK !
Use that maybe good :
select USERID into v_user from sys.aud$
where ntimestamp#=(
select max(ntimestamp#)
from sys.aud$ ); -
Web Services: How to get the username token?
Hello everybody,
I wrote an EJB, Exposed it as a web service.
I'm using encryption+username as the inbound policy.
The client is adding a username token to the message.
I understood that the userpassword are checked automatically and I don't need to implement that myself but I need the userpassword from this token for another reason.
How can I get this information in the EJB's code?
Thanks, Adi.You can get the user from Session Bean's context.
myContext.getCallerPrincipal();
I think you cannot get the password. That way, it would be easy to disguise your WS as another one you could want to crack.
Regards. -
How to query the username....
Hello folks,
please can anyone help me on how to get the username of a user who is locking a specific row, for example if a user in a multi-user application is locking the record where emp_id=10 and name=X, how can I get his name?????
and thank you in advanceHi fish,
deadlocks are different things. Oracle documentation says : "A deadlock can occur when two or more users are waiting for data locked by each other" and "Oracle automatically detects deadlock situations and resolves them by rolling back one of the statements involved in the deadlock"
See http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14220/consist.htm#sthref2043
See my example (ora102 is OS user and lock1 is my script above) :
Session 1 :
SCOTT@db102 SQL> update emp set sal=3000 where empno=7902;
1 row updated.
SCOTT@db102 SQL>Session 2 :
SCOTT@db102 SQL> update emp set sal=3000 where empno=7902;
... hangsSysdba session :
SYS@db102 SQL> @lock1
TO_CHAR(SYSDATE,'DD
17/05/2006 16:25:54
BLOCKER SID 'BLOCKS' BLOCKEE SID USERNAME
ora102 148 blocks ora102 158 SCOTT
OBJECT_NAME SID ORACLE_USERNAME TY LMODE REQUEST
EMP 148 SCOTT TX 6 0
SYS@db102 SQL> -
How to get the current logged in username from windows and put it into an AS var
Hello,
I was hopeing someone would know how to get the current logged in username from windows and put it into a var, so I can create a dynamic text box to display it.
Thanks in advance
MichaelJust for everyone’s info, this is the script I have used to get the logged in windows username into flash ---- not and air app.
In the html page that publishes with the .swf file under the <head> section:-
<script language="JavaScript" type="text/javascript">
function findUserName() {
var wshell=new ActiveXObject ("wscript.shell");
var username=wshell.ExpandEnvironmentStrings("%username%");
return username;
</script>
The ActionScript:-
import flash.external.ExternalInterface;
var username:String = ExternalInterface.call ("findUserName");
trace (username); // a quick test to see it in output -
How can I get the username displayed in BW Web-Report?
Hello all,
I try to get the username displayed in BW-Report such as 'welcome <username>'.
Maybe you can give me a suggestion how to do it.
I appretiate your answer.
Regards
Vivianyou can use the following javascript within the webtemplate to get the user id
<script language=javascript>
var user_name ='<object>
<param name="OWNER" value="SAP_BW"/>
<param name="CMD" value="GET_ITEM"/>
<param name="NAME" value="TEXTELEMENTS_USER"/>
<param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_TEXT_ELEMENTS"/>
<param name="DATA_PROVIDER" value="DP"/>
<param name="GENERATE_CAPTION" value=""/>
<param name="ELEMENT_TYPE_1" value="COMMON"/>
<param name="ELEMENT_NAME_1" value="SYUSER"/>
<param name="ONLY_VALUES" value="X"/>
ITEM: TEXTELEMENTS_USER
</object>';
</script>
Regards
Raja -
How to get the windows username in jsx
Hello,
I have a JSX script in "My Documents\Adobe Scripts" to make it trusted script. I have another text file I need to read from JSX. Since the location depends on logged in user, I need to find the windows username. If anyone know how to get the windows username from jsx please reply.
Thank you very much.
Regards
Nima.Hey,
You can get username like this:
var myUsername = $.getenv('username');
You could also get My Documents folder like this:
var myDocFolder = Folder.myDocuments;
Hope that helps.
Marijan (tomaxxi)
http://tomaxxi.com/ -
How can I get the UserName in JAX-RPC?
The client is just as following:
import javax.xml.rpc.Call;
import javax.xml.rpc.Service;
import javax.xml.rpc.JAXRPCException;
import javax.xml.rpc.namespace.QName;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.ParameterMode;
public class ACTRPCClient {
private static String qnameService = "Hello";
private static String qnamePort = "Greeting";
private static String BODY_NAMESPACE_VALUE ="http://hello.org/wsdl";
private static String ENCODING_STYLE_PROPERTY ="javax.xml.rpc.encodingstyle.namespace.uri";
private static String NS_XSD ="http://www.w3.org/2001/XMLSchema";
private static String URI_ENCODING ="http://schemas.xmlsoap.org/soap/encoding/";
public ACTRPCClient() {
public static void main(String[] args) {
try {
String endpoint= "http://127.0.0.1:8080/SOAPListener/Hello";
ServiceFactory factory =ServiceFactory.newInstance();
Service service =factory.createService(new QName(qnameService));
QName port = new QName(qnamePort);
Call call = service.createCall();
call.setPortTypeName(port);
call.setTargetEndpointAddress(endpoint);
call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true));
call.setProperty(Call.SOAPACTION_URI_PROPERTY, "");
call.setProperty(ENCODING_STYLE_PROPERTY,URI_ENCODING);
//here I set the username and password
call.setProperty("javax.xml.rpc.security.auth.username","tomcat");
call.setProperty("javax.xml.rpc.security.auth.password","tomcat");
QName QNAME_TYPE_STRING = new QName(NS_XSD, "string");
call.setReturnType(QNAME_TYPE_STRING);
call.setOperationName(new QName (BODY_NAMESPACE_VALUE, "getHello"));
call.addParameter("Greeting", QNAME_TYPE_STRING, ParameterMode.PARAM_MODE_IN);
String[] params = { new String("Hello!") };
String result = (String)call.invoke(params);
System.out.println(result);
} catch (Exception ex) {
ex.printStackTrace();
On the server side,I wrote a my own servlet to receive the soap instead of the jax-rpc.But I can't get the username from the request.
for example,
String username;
username=request.getRemoteUser();
I noticed that in the api doc,it says when the user has not been authenticated the method getRemoteUser will return null.So I use the username "tomcat" ,password "tomcat "in the tomcat-
users.xml.But I still can't get the username,why?
Thanks for your help.From the Axis I find the problem,the username and password is stored in the headers of the http.
And now the jax-rpc only surpport basic authentication,we can get them by calling request.header("Authentication").Howerver,the infomation is encoded by Base64.We copy a module from the Axis to decode the infomation.That's it,but still thank your attention. -
How to get the current user logon to portal?
Hi Gurus,
How to get the current user who logged into portal.
I have a webdynpro requirement where in which I have to get the current user id who loggedinto portal which will be the input parameter of the BAPI(adaptive RFC model) which will return me employee number of the particular user.
Can anyone send me the code to retrive the user id through webdynpro application..........
Pts will be rewarded for useful inputs......
Thanks in Advance,
DharaniHi Dharani,
Using UMEfactory u can do that...
1. create one input field,
2. create one attribute called Uid
3. assign Uid attribute to the input field
4. type the following code in Doinit() method
String uid = wdContext.currentContextElement().getUid();
try {
IUser user = UMFactory.getUserFactory().
getUserByLogonID(uid);
String userName = user.getDisplayName();
} catch (UMException ex) {
e.toString();
5. after that go to Portal create one iview assign to particular user. then u get into the user details...
thats it
Regards,
P.Manivannan -
How to get the list of active devices in current wifi network?
Hi All,
I am going to a start a new Network based app. So please any one give me an idea on the below question.
How to get the list of active devices in current wifi network?Nope I want the log-in user to retrieve its Group where he is belong. I have this following code
strUsername = Request.getParameter("username").toLowerCase().trim()+"@dev.test.com.ph";
strPassword = Request.getParameter("password").toLowerCase().trim();
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, INITCTX);
env.put(Context.PROVIDER_URL, MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,strUsername);
env.put(Context.SECURITY_CREDENTIALS, strPassword);
// enable tracing
env.put("com.sun.naming.ldap.trace.ber", System.err);
// Create the initial context
DirContext initCtx = new InitialDirContext(env);
// Get the target context
DirContext targetCtx = (DirContext)initCtx.lookup("");
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
// Perform the search on the target context
NamingEnumeration enum = targetCtx.search("","(userPrincipalName="+strUsername+")",constraints);
javax.naming.directory.Attributes attrs;
NameClassPair item;
String[] attrIds = new String[]{"MemberOf"};
// For each answer found, get its "Groups" attribute
// If relative, resolve it relative to the target context
// If not relative, resolve it relative to the initial context
while (enum.hasMore()) {
item = (NameClassPair)enum.next();
Out.println(item);
attrs = targetCtx.getAttributes(item.getName(), attrIds);
Out.println(attrs + "<br>");
initCtx.close();
It returns all this string :
{memberof=memberOf: CN=CMCanadaRD,OU=Groups / Teams,DC=dev,DC=test,DC=com,DC=ph, CN=iMngrCanadaRW,OU=Groups / Teams,DC=dev,DC=test,DC=com,DC=ph, CN=Domain Users,CN=Users,DC=dev,DC=test,DC=com,DC=ph, CN=Backup Operators,CN=Builtin,DC=dev,DC=test,DC=com,DC=ph, CN=Administrators,CN=Builtin,DC=dev,DC=test,DC=com,DC=ph}
How can i retrieve the Group named CMCanadaRW and CMCanadaRD on the Attribute?
Thanks -
How to get the list of Group set in each Users in MS Active Directory
Hi. I would like to know if you know how to get the set group of each user in Active Directory?
We have this sample code
String INITCTX ="com.sun.jndi.ldap.LdapCtxFactory";
//String MY_HOST = "ldap://myserver/ou=dev,dc=test,dc=com,dc=ph";
String MY_HOST ="ldap://myserver.dev.test.com.ph:389/dc=dev,dc=test,dc=com,dc=ph";
String strUsername,strPassword;
try
strUsername = Request.getParameter("username").toLowerCase().trim();
strPassword = Request.getParameter("password").toLowerCase().trim();
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, INITCTX);
env.put(Context.PROVIDER_URL, MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,strUsername+"@dev.lst.com.ph");
env.put(Context.SECURITY_CREDENTIALS, strPassword);
After validating the User Name and Password the next task is to Retrieve the group list of the User.Nope I want the log-in user to retrieve its Group where he is belong. I have this following code
strUsername = Request.getParameter("username").toLowerCase().trim()+"@dev.test.com.ph";
strPassword = Request.getParameter("password").toLowerCase().trim();
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, INITCTX);
env.put(Context.PROVIDER_URL, MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,strUsername);
env.put(Context.SECURITY_CREDENTIALS, strPassword);
// enable tracing
env.put("com.sun.naming.ldap.trace.ber", System.err);
// Create the initial context
DirContext initCtx = new InitialDirContext(env);
// Get the target context
DirContext targetCtx = (DirContext)initCtx.lookup("");
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
// Perform the search on the target context
NamingEnumeration enum = targetCtx.search("","(userPrincipalName="+strUsername+")",constraints);
javax.naming.directory.Attributes attrs;
NameClassPair item;
String[] attrIds = new String[]{"MemberOf"};
// For each answer found, get its "Groups" attribute
// If relative, resolve it relative to the target context
// If not relative, resolve it relative to the initial context
while (enum.hasMore()) {
item = (NameClassPair)enum.next();
Out.println(item);
attrs = targetCtx.getAttributes(item.getName(), attrIds);
Out.println(attrs + "<br>");
initCtx.close();
It returns all this string :
{memberof=memberOf: CN=CMCanadaRD,OU=Groups / Teams,DC=dev,DC=test,DC=com,DC=ph, CN=iMngrCanadaRW,OU=Groups / Teams,DC=dev,DC=test,DC=com,DC=ph, CN=Domain Users,CN=Users,DC=dev,DC=test,DC=com,DC=ph, CN=Backup Operators,CN=Builtin,DC=dev,DC=test,DC=com,DC=ph, CN=Administrators,CN=Builtin,DC=dev,DC=test,DC=com,DC=ph}
How can i retrieve the Group named CMCanadaRW and CMCanadaRD on the Attribute?
Thanks -
How to Get the Debugger Screen in WEB Front end of SRM
Hi Gurus,
I have couple of questions for SRM.
1. How to Get the Debugger Screen in WEB Front end of SRM so i can debug the application which is running in EBP system??
2. How to set the flag for external debugging (HTTP)??
3. Using SICF how to set the ITS services ( Like BBPSC01 )for internal ITS so as soon as i place the order it should stop at the break point which i have set in the application.
Thanks.
Regards,
Manoj TiwariSetting up Debugging for Integrated ITS
Tcode SICF.
Select service (e.g. default_hostàbcàguiàsapàitsàbbpsc01).
Change service settings and insert parameter ~GENERATEDYNDPRO=1.
Find program to debug. E.g. SE93. Enter bbpsc01 à Display and get Program field (SAPLBBP_SC_UI_ITS)
Execute SE38 and enter program name.
Turn HTTP Debugging ON. UtilitiesàSettingsàDebugging. Click Actv and username.
Add HTTP Breakpoint. Display source code and select Utilitiesàbreakpointsàset.
On External Debugging select HTTP Breakpoint.
Remember to remove breakpoints, deactivate debugging and remove parameter GENERATEDYNPRO.
Can run program RSBREAKPOINTS to find which programs you have breakpoints set in.
Have fun with EBP
If you have any more questions i would be happy to help you. Send me mail on [email protected] -
How to get the Sysman password in a fetchlet?
Folks,
Need advise.
I have a fetchlet and I need to get the username and password of the oracle management repository (using some Perl and SQL Scripts) to fetch some details.
How I can get the password of Sysman user in a fetchlet?
Is there some thing similar to <Property NAME="emdRoot" SCOPE="SYSTEMGLOBAL">emdRoot</Property>
thanks
MathewThose are parameters you would have to take in as instance properties, which would force the user to enter them every time they create an instance of your target type.
What's the reason you need to connect to the repository? That's an extremely odd case unless your target type is monitoring the repository.
Maybe you are looking for
-
Hi! Is it possible to modify a select query for a report in the following way: I have created two fields where users input values and operators. Operators selection is a static list consisting of: =, like , in Value field is a text field. The current
-
Connecting macBook to digital satelite receiver
I have a MacBook Dual Core and want to use this computer as a TV. Is it pssible to connect my digital satelite receiver (Pioneer DBR-S120NL) to my MacBook. How to connect, using Scart or paralel exit of the receiver etcetera. and/or do I use other ha
-
Activity Types for a Work Center
Dear Experts, I have done KL01 and KP26 transactions. That is I ahve defined the activity and assignes a cost conter to it. Still, when I am trying to enter the activity type in costing tab while creating the work center, the system throws an error a
-
Unable to access my iCloud account from any device?
I am unable to log into my iCloud account through the web and apps on iOS and OS X that's connected to iCloud... Now I'm being disconnected from already logged in apps and is making reenter my password, but even when I do, it gives me an error. On th
-
Elimination of I/U Profit/Loss on transferred Assets
Hi How is elimination of inter unit profit / loss on transferred assets handled in the EC-CS system. As I know in the FI-LC system we need to enter reported data in the asset transfers table (T875D) . Can anybody throw some light on what are the prov