[jira] Created: (DIRSERVER-1201) Interceptors not working (XBean)

View: New views
6 Messages — Rating Filter:   Alert me  

[jira] Created: (DIRSERVER-1201) Interceptors not working (XBean)

by JIRA jira@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Interceptors not working (XBean)
--------------------------------

                 Key: DIRSERVER-1201
                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1201
             Project: Directory ApacheDS
          Issue Type: Bug
    Affects Versions: 1.5.3
         Environment: Debian GNU/Linux Unstable i386
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
            Reporter: Michael Fladischer


After uncommenting <keyDerivationeterceptor/> in server.xml startup fails with this error:

jvm 1    | [12:48:11] ERROR [org.apache.directory.daemon.Bootstrapper] - Failed on null.init(InstallationLayout, String[])
jvm 1    | org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized xbean element mapping: keyDerivationeterceptor in namespace http://apacheds.org/config/1.0
jvm 1    | at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:266)
jvm 1    | at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
jvm 1    | at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
jvm 1    | at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1114)
jvm 1    | at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseNestedCustomElement(BeanDefinitionParserDelegate.java:1160)
jvm 1    | at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
jvm 1    | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
jvm 1    | at java.lang.reflect.Method.invoke(Method.java:597)

Similar errors arise for <passwordPolicyInterceptor/> and <replicationeterceptor/>.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Created: (DIRSERVER-1201) Interceptors not working (XBean)

by Alex Karasulu :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hiya David,

Do you have any insight on this problem?  Was wondering if you knew something we can check off the top of your head.

Thanks,
Alex

On Mon, Jul 14, 2008 at 8:51 AM, Michael Fladischer (JIRA) <jira@...> wrote:
Interceptors not working (XBean)
--------------------------------

                Key: DIRSERVER-1201
                URL: https://issues.apache.org/jira/browse/DIRSERVER-1201
            Project: Directory ApacheDS
         Issue Type: Bug
   Affects Versions: 1.5.3
        Environment: Debian GNU/Linux Unstable i386
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
           Reporter: Michael Fladischer


After uncommenting <keyDerivationeterceptor/> in server.xml startup fails with this error:

jvm 1    | [12:48:11] ERROR [org.apache.directory.daemon.Bootstrapper] - Failed on null.init(InstallationLayout, String[])
jvm 1    | org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized xbean element mapping: keyDerivationeterceptor in namespace http://apacheds.org/config/1.0
jvm 1    |      at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:266)
jvm 1    |      at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
jvm 1    |      at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
jvm 1    |      at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1114)
jvm 1    |      at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseNestedCustomElement(BeanDefinitionParserDelegate.java:1160)
jvm 1    |      at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
jvm 1    |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
jvm 1    |      at java.lang.reflect.Method.invoke(Method.java:597)

Similar errors arise for <passwordPolicyInterceptor/> and <replicationeterceptor/>.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.




--
Microsoft gives you Windows, Linux gives you the whole house ...

[jira] Commented: (DIRSERVER-1201) Interceptors not working (XBean)

by JIRA jira@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


    [ https://issues.apache.org/jira/browse/DIRSERVER-1201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12613431#action_12613431 ]

Martin Alderson commented on DIRSERVER-1201:
--------------------------------------------

This might be a stupid comment but shouldn't "keyDerivationeterceptor" be "keyDerivationInterceptor"?  The same typo is there for "replicationeterceptor" but not "passwordPolicyInterceptor" - strange!

> Interceptors not working (XBean)
> --------------------------------
>
>                 Key: DIRSERVER-1201
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1201
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.3
>         Environment: Debian GNU/Linux Unstable i386
> java version "1.6.0_07"
> Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
> Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
>            Reporter: Michael Fladischer
>
> After uncommenting <keyDerivationeterceptor/> in server.xml startup fails with this error:
> jvm 1    | [12:48:11] ERROR [org.apache.directory.daemon.Bootstrapper] - Failed on null.init(InstallationLayout, String[])
> jvm 1    | org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized xbean element mapping: keyDerivationeterceptor in namespace http://apacheds.org/config/1.0
> jvm 1    | at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:266)
> jvm 1    | at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
> jvm 1    | at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
> jvm 1    | at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1114)
> jvm 1    | at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseNestedCustomElement(BeanDefinitionParserDelegate.java:1160)
> jvm 1    | at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> jvm 1    | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> jvm 1    | at java.lang.reflect.Method.invoke(Method.java:597)
> Similar errors arise for <passwordPolicyInterceptor/> and <replicationeterceptor/>.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DIRSERVER-1201) Interceptors not working (XBean)

by JIRA jira@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


    [ https://issues.apache.org/jira/browse/DIRSERVER-1201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12613449#action_12613449 ]

Michael Fladischer commented on DIRSERVER-1201:
-----------------------------------------------

Those are typos in my report. It's strange as i just pasted them into the form. The correct names are passwordPolicyInterceptor, keyDerivationInterceptor and replicationInterceptor.

> Interceptors not working (XBean)
> --------------------------------
>
>                 Key: DIRSERVER-1201
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1201
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.3
>         Environment: Debian GNU/Linux Unstable i386
> java version "1.6.0_07"
> Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
> Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
>            Reporter: Michael Fladischer
>
> After uncommenting <keyDerivationeterceptor/> in server.xml startup fails with this error:
> jvm 1    | [12:48:11] ERROR [org.apache.directory.daemon.Bootstrapper] - Failed on null.init(InstallationLayout, String[])
> jvm 1    | org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized xbean element mapping: keyDerivationeterceptor in namespace http://apacheds.org/config/1.0
> jvm 1    | at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:266)
> jvm 1    | at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
> jvm 1    | at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
> jvm 1    | at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1114)
> jvm 1    | at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseNestedCustomElement(BeanDefinitionParserDelegate.java:1160)
> jvm 1    | at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> jvm 1    | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> jvm 1    | at java.lang.reflect.Method.invoke(Method.java:597)
> Similar errors arise for <passwordPolicyInterceptor/> and <replicationeterceptor/>.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DIRSERVER-1201) Interceptors not working (XBean)

by JIRA jira@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


    [ https://issues.apache.org/jira/browse/DIRSERVER-1201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12613474#action_12613474 ]

David Jencks commented on DIRSERVER-1201:
-----------------------------------------

The xbean-spring module got out of sync with where the annotated classes actually are.  I updated the (apparently new since the original xbean work) interceptor-kerberos module to generate a source jar and the xbean-spring module to use it.  I also alphabetized the xbean-spring dependencies and added a couple instructions.  I see the interceptors in question in the generated schema after these changes.

bigbang rev 676697.

Not sure exactly how to verify the problem is completely solved, so leaving it open.

> Interceptors not working (XBean)
> --------------------------------
>
>                 Key: DIRSERVER-1201
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1201
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.3
>         Environment: Debian GNU/Linux Unstable i386
> java version "1.6.0_07"
> Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
> Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
>            Reporter: Michael Fladischer
>
> After uncommenting <keyDerivationeterceptor/> in server.xml startup fails with this error:
> jvm 1    | [12:48:11] ERROR [org.apache.directory.daemon.Bootstrapper] - Failed on null.init(InstallationLayout, String[])
> jvm 1    | org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized xbean element mapping: keyDerivationeterceptor in namespace http://apacheds.org/config/1.0
> jvm 1    | at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:266)
> jvm 1    | at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
> jvm 1    | at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
> jvm 1    | at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1114)
> jvm 1    | at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseNestedCustomElement(BeanDefinitionParserDelegate.java:1160)
> jvm 1    | at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> jvm 1    | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> jvm 1    | at java.lang.reflect.Method.invoke(Method.java:597)
> Similar errors arise for <passwordPolicyInterceptor/> and <replicationeterceptor/>.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DIRSERVER-1201) Interceptors not working (XBean)

by JIRA jira@apache.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


    [ https://issues.apache.org/jira/browse/DIRSERVER-1201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12613546#action_12613546 ]

Michael Fladischer commented on DIRSERVER-1201:
-----------------------------------------------

Updated bigbang sources to revision 676811 and did a new build (mvn clean && mvn install).
The error isn't gone but it changed to a new error upon activating keyDerivationInterceptor:

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Failed to load type: org.apache.directory.server.core.kerberos.KeyDerivationInterceptor. Reason: java.lang.ClassNotFoundException: org.apache.directory.server.core.kerberos.KeyDerivationInterceptor; nested exception is java.lang.ClassNotFoundException: org.apache.directory.server.core.kerberos.KeyDerivationInterceptor
Caused by: java.lang.ClassNotFoundException: org.apache.directory.server.core.kerberos.KeyDerivationInterceptor
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at org.apache.xbean.spring.context.v2c.XBeanQNameHelper.loadClass(XBeanQNameHelper.java:107)
        at org.apache.xbean.spring.context.v2c.XBeanQNameHelper.getBeanInfo(XBeanQNameHelper.java:72)
        at org.apache.xbean.spring.context.v2c.XBeanQNameHelper.coerceNamespaceAwarePropertyValues(XBeanQNameHelper.java:54)
        at org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.parseBeanDefinitionElement(XBeanBeanDefinitionParserDelegate.java:63)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseBeanDefinitionElement(BeanDefinitionParserDelegate.java:341)
        at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:216)
        at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:264)
        at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
        at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1114)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseNestedCustomElement(BeanDefinitionParserDelegate.java:1160)
        at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.internalParseNestedCustomElement(XBeanBeanDefinitionParserDelegate.java:94)
        at org.apache.xbean.spring.context.v2c.XBeanBeanDefinitionParserDelegate.parsePropertySubElement(XBeanBeanDefinitionParserDelegate.java:51)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseListElement(BeanDefinitionParserDelegate.java:903)
        at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseListElement(XBeanNamespaceHandler.java:597)
        at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseNestedPropertyViaIntrospection(XBeanNamespaceHandler.java:590)
        at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.tryParseNestedPropertyViaIntrospection(XBeanNamespaceHandler.java:559)
        at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.addNestedPropertyElements(XBeanNamespaceHandler.java:528)
        at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:219)
        at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:264)
        at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
        at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1114)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1104)
        at org.apache.xbean.spring.context.v2.XBeanBeanDefinitionDocumentReader.parseBeanDefinitions(XBeanBeanDefinitionDocumentReader.java:84)
        at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:458)
        at org.apache.xbean.spring.context.v2.XBeanXmlBeanDefinitionReader.registerBeanDefinitions(XBeanXmlBeanDefinitionReader.java:79)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:353)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:147)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:173)
        at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:112)
        at org.apache.xbean.spring.context.FileSystemXmlApplicationContext.loadBeanDefinitions(FileSystemXmlApplicationContext.java:168)
        at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:101)
        at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:389)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:324)
        at org.apache.xbean.spring.context.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:149)
        at org.apache.xbean.spring.context.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:48)
        at org.apache.directory.server.Service.init(Service.java:60)
        at org.apache.directory.server.UberjarMain.main(UberjarMain.java:56)


> Interceptors not working (XBean)
> --------------------------------
>
>                 Key: DIRSERVER-1201
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1201
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.3
>         Environment: Debian GNU/Linux Unstable i386
> java version "1.6.0_07"
> Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
> Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
>            Reporter: Michael Fladischer
>
> After uncommenting <keyDerivationeterceptor/> in server.xml startup fails with this error:
> jvm 1    | [12:48:11] ERROR [org.apache.directory.daemon.Bootstrapper] - Failed on null.init(InstallationLayout, String[])
> jvm 1    | org.springframework.beans.factory.BeanDefinitionStoreException: Unrecognized xbean element mapping: keyDerivationeterceptor in namespace http://apacheds.org/config/1.0
> jvm 1    | at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parseBeanFromExtensionElement(XBeanNamespaceHandler.java:266)
> jvm 1    | at org.apache.xbean.spring.context.v2c.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:157)
> jvm 1    | at org.apache.xbean.spring.context.v2.XBeanNamespaceHandler.parse(XBeanNamespaceHandler.java:49)
> jvm 1    | at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1114)
> jvm 1    | at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseNestedCustomElement(BeanDefinitionParserDelegate.java:1160)
> jvm 1    | at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> jvm 1    | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> jvm 1    | at java.lang.reflect.Method.invoke(Method.java:597)
> Similar errors arise for <passwordPolicyInterceptor/> and <replicationeterceptor/>.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

LightInTheBox - Buy quality products at wholesale price